python - 为什么我的数据透视表的值是偏移的?
问题描述
我不明白为什么在这种情况下这些值会在 pivot_table 中交换。该计数与我使用 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