gpt4 book ai didi

python - Pandas 计算 groupby 的条件计数,包括零计数

转载 作者:行者123 更新时间:2023-11-28 22:35:18 25 4
gpt4 key购买 nike

Pandas 中有没有一种方法可以根据包含那些不包含值的组的组来计算包含特定值的行数?

例如,如果我有这个数据框:

dd = pd.DataFrame({'g1':['a','b','a','b','a','b','c','c'],\
'g2':['x','x','z','y','y','z','x','z'],\
'cond':['i','i','i','j','j','j','k','k']})
dd[['g1','g2','cond']]

g1 g2 cond
0 a x i
1 b x i
2 a z i
3 b y j
4 a y j
5 b z j
6 c x k
7 c z k

我想按组获取 j 的所有计数,包括该组是否没有任何包含“j”的行。理想的输出应该是这样的:

a   x     0
y 1
z 0
b x 0
y 1
z 1
c x 0
z 0

如果我尝试事先获取条件切片,我会得到一个我不想要的被截断的答案。

dd.ix[dd['cond']=='j',:].groupby(['g1','g2'])['cond'].count()
g1 g2
a y 1
b y 1
z 1

此外,我不需要数据透视表,因为数据框不包含 g1 和 g2 的所有组合。

提前致谢。

最佳答案

只需应用一个计算js的函数。

>>> dd.groupby(['g1', 'g2']).cond.apply(lambda g: (g=='j').sum())
g1 g2
a x 0
y 1
z 0
b x 0
y 1
z 1
c x 0
z 0
Name: cond, dtype: int64

关于python - Pandas 计算 groupby 的条件计数,包括零计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38284609/

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