Python 如何对数据帧中的所有计数求和
我有一个熊猫数据框,看起来像这样(简化示例): 如果access表示用户刚刚检查了该产品的文件,order表示用户购买了该产品,我希望有另一个数据框,在该数据框中,我可以看到一个产品在所有用户中购买了多少份。以这样的方式结束:Python 如何对数据帧中的所有计数求和,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个熊猫数据框,看起来像这样(简化示例): 如果access表示用户刚刚检查了该产品的文件,order表示用户购买了该产品,我希望有另一个数据框,在该数据框中,我可以看到一个产品在所有用户中购买了多少份。以这样的方式结束: product count 0 63767 0 1 84325 0 2 997165 0 3 130365 3 4 76863 2 5 86833 2 6 86217 1 使用Series.mask、Serie
product count
0 63767 0
1 84325 0
2 997165 0
3 130365 3
4 76863 2
5 86833 2
6 86217 1
使用
Series.mask
、Series.fillna
和GroupBy.count
:
df['count'] = df['count'].mask(df['type'].eq('access'))
dfn = df.groupby('product', sort=False)['count'].count().reset_index()
product count
0 63767 0
1 84325 0
2 997165 0
3 130365 3
4 76863 2
5 86833 2
6 86217 1
注意:此处使用
count
而不是size
,这一点很重要,因为后者也将计数NaN
。预期输出是否来自样本输入?您是如何获得130365
的4
的?对不起,我现在就编辑它,预期的输出是从示例输入中派生出来的,但我是手工制作的,这是一个错误。76863也错了,我修复了这两个问题。还添加了一个,这样可以更容易地重新创建您的DataFrame。您可以尝试使用df.count(axis=0)完美地工作!非常感谢你,为你的错误感到抱歉
df['count'] = df['count'].mask(df['type'].eq('access'))
dfn = df.groupby('product', sort=False)['count'].count().reset_index()
product count
0 63767 0
1 84325 0
2 997165 0
3 130365 3
4 76863 2
5 86833 2
6 86217 1