在这种情况下,我不明白为什么值会在数据透视表中切换。计数与我在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
答案 0 :(得分:0)
在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