我有以下df:

df = pd.DataFrame({'c1': [1,5,2,2,2,5],'c2':[2,2,2,2,1,2]})

   c1  c2
0   1   2
1   5   2
2   2   2
3   2   2
4   2   1
5   5   2


我试图得到

   c1  c2  c3
0   1   2   1
1   5   2   2
2   2   2   2
3   2   2   2
4   2   1   1
5   5   2   2


我开始

df['c3'] = df.groupby('c1')['c2'].transform('size')


但不知道如何按两列分组。

最佳答案

如果您只需要使用group by进行计数,则可以尝试以下操作

import pandas as pd

df = pd.DataFrame({'c1': [1,5,2,2,2,5],'c2':[2,2,2,2,1,2]})

print (df.groupby(['c1', 'c2']).size().reset_index(name='counts'))

关于python - 如何通过两个字段添加出现次数的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56018297/

10-12 16:56
查看更多