在这种情况下,我不明白为什么值在pivot_table中是swop。计数与我用pd.cut()设置的标签数量不对应。
df
A B
0 12 75
1 76 34
2 42 62
3 19 15
df['Cat'] = pd.cut(df2['B'], bins=[0, 25, 50, 75, 100], labels=['C1', 'C2', 'C3', 'C4'])
df
A B Cat
0 12 75 C3
1 76 34 C2
2 42 62 C3
3 19 15 C1
df.pivot_table(columns='Cat', aggfunc='count')
Cat C3 C2 C1
A 1 1 2
B 1 1 2
我期待输出:
Cat C3 C2 C1
A 2 1 1
B 2 1 1
在版本pandas 0.24.2它工作得很好,也添加了列没有数据C4
,因为分类:
df = df2.pivot_table(columns='Cat', aggfunc='count')
print (df)
Cat C1 C2 C3 C4
A 1 1 2 0
B 1 1 2 0
替代方案:
df = df2.groupby('Cat').count().T
print (df)
Cat C1 C2 C3 C4
A 1 1 2 0
B 1 1 2 0