2015-10-06 3 views
0

У меня есть dataframe в пандах со столбцами Year (int), Loc (упорядоченная пара ints) и Rain (boolean). Есть много точек данных Rain для каждого Year. Например, на графике, вы можете увидеть:Есть ли функция, которая суммирует зависимые типы данных?

Year  | Loc  |  Rain 
1700   (0, 0)   1 
1700   (0, 0)   1 
1700   (5, 6)   0 

т.д.

Есть ли функция, которая будет сочетать в себе эти данные точек в одну точку данных, если Year И Loc то же самое, с Rain как сумма всех Rain баллов соответствующих Year И Loc баллов?

ответ

1

Вы хотите сгруппировать по «Год» и «Найти» и показать SUM of Rain? что-то вроде следующего?

df.groupby(['Year', 'Loc']).sum().reset_index() 
0

есть. Это также должно сделать трюк:

# Just a dict of your data 
dd = {'year':(1700,1700,1700),'loc':((0,0),(0,0),(5,6)),'rain':(1,1,0)} 

df = DataFrame(dd) 
# Set an index, groupby and count aggregate. 
adjusted_df = df.set_index(['year','loc']).groupby(level=['year','loc']).count() 

Хотя это почти то же самое, что и первое решение. Первое решение, вероятно, лучше (меньше кода).

Смежные вопросы