Я пытаюсь агрегировать некоторые статистические данные из объекта groupby на кусках данных. Мне нужно записать данные, потому что их много (18 миллионов) строк. Я хочу найти количество строк в каждой группе в каждом фрагменте, а затем суммировать их. Я могу добавить объекты groupby, но когда группа не присутствует в одном члене, результатом является NaN. Смотрите этот случай:Агрегация объектов pandas groupby
>>> df = pd.DataFrame({'X': ['A','B','C','A','B','C','B','C','D','B','C','D'],
'Y': range(12)})
>>> df
X Y
0 A 0
1 B 1
2 C 2
3 A 3
4 B 4
5 C 5
6 B 6
7 C 7
8 D 8
9 B 9
10 C 10
11 D 11
>>> df[0:6].groupby(['X']).count() + df[6:].groupby(['X']).count()
Y
X
A NaN
B 4
C 4
D NaN
Но я хочу видеть:
>>> df[0:6].groupby(['X']).count() + df[6:].groupby(['X']).count()
Y
X
A 2
B 4
C 4
D 2
Есть хороший способ сделать это? Обратите внимание, что в реальном коде я зацикливаюсь через chunked iterator из миллиона строк в группе.
Параметр 'fill_value' хороший вариант, другой вариант заключается в использовании' fillna (0) 'на каждом GroupBy результат, а затем суммируйте их – joris
Возможно, вы захотите изучить Blaze. http://continuum.io/blog/blaze-expressions – Alexander