我有一个包含多个组列和值列的数据框。
a b val
0 A C 1
1 A D 1
2 A D 1
3 A D 2
4 B E 0
对于任何一个组,例如a==A
,b==C
我可以在系列切片上执行value_counts
。如何以类似于:
a b val counts
0 A C 1 1
1 A D 1 2
2 A D 2 1
2 B E 0 1
答案 0 :(得分:1)
是你想要的吗?
In [47]: df.groupby(['a','b','val']).size().reset_index()
Out[47]:
a b val 0
0 A C 1 1
1 A D 1 2
2 A D 2 1
3 B E 0 1
还是这个?
In [43]: df['counts'] = df.groupby(['a','b'])['val'].transform('size')
In [44]: df
Out[44]:
a b val counts
0 A C 1 1
1 A D 1 3
2 A D 1 3
3 A D 2 3
4 B E 0 1