gpt4 book ai didi

python - Pandas groupby对象的聚合

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:57 24 4
gpt4 key购买 nike

我正在尝试从数据 block 的 groupby 对象中聚合一些统计信息。我必须对数据进行分块,因为有很多(1800 万)行。我想找到每个 block 中每个组的行数,然后将它们相加。我可以添加 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

关于python - Pandas groupby对象的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30202578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com