我正在尝试汇总来自groupby对象的一些统计信息。我必须对数据进行分块,因为有很多(1800万)行。我想找到每个组中每个组中的行数,然后将它们加在一起。我可以添加groupby对象,但是当一个术语中不存在一个组时,将显示NaN。看到这种情况:
>>> 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
有什么好方法吗?请注意,在实际代码中,我正在遍历每个groupby一百万行的分块迭代器。
调用add
并传递,fill_value=0
您可以迭代添加,同时分块,我猜:
In [98]:
df = pd.DataFrame({'X': ['A','B','C','A','B','C','B','C','D','B','C','D'],
'Y': np.arange(12)})
df[0:6].groupby(['X']).count().add(df[6:].groupby(['X']).count(), fill_value=0)
Out[98]:
Y
X
A 2
B 4
C 4
D 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句