我是熊猫新手,我对groupby有点困惑。如果我有一个数据框,如:
然后:df.groupby(['A']).count()
返回类似(不完全但接近)的内容:
我的问题是,当您按超过1列分组时会发生什么?像:
df.groupby(['A','B','C']).count()
是否重新组合A,B和C列然后计算计数?
答案 0 :(得分:1)
count
计算非空值的数量。在groupby
上下文中,它计算每个组中的非空值的数量。当您一次groupby
多个列时,groupby
会为每个唯一组合创建一个组。因此,df.groupby(['A','B','C']).count()
计算['A', 'B', 'C']
考虑示例数据框df
df = pd.DataFrame(dict(
A=list('xxxxxxxxyyyyyyyyzzzzzzzz'),
B=list('111122221111222211112222'),
C=list('abababababababababababab'),
D=list(range(23)) + [np.nan]
))
然后
df.groupby(['A','B','C']).count()
D
A B C
x 1 a 2
b 2
2 a 2
b 2
y 1 a 2
b 2
2 a 2
b 2
z 1 a 2
b 2
2 a 2
b 1