首页 > 解决方案 > 为什么我的数据透视表的值是偏移的?

问题描述

我不明白为什么在这种情况下这些值会在 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

标签: pythonpandaspivot-table

解决方案


在 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

推荐阅读