首页 > 解决方案 > 为什么在熊猫中创建数据透视表时十进制不起作用?

问题描述

以下工作正常:

a = pandas.DataFrame({
    'A': ['a', 'b', 'a'],
    'B': ['one', 'two', 'three'],
    'C': [22.3, 34.0, 12.3]
})

pandas.pivot_table(a, values='C', index='A', columns='B')

B   one  three   two
A                   
a  22.3   12.3   NaN
b   NaN    NaN  34.0

但是以下内容在旋转时返回一个空数据框,我想知道为什么会这样:

b = pandas.DataFrame({
    'A': ['a', 'b', 'a'],
    'B': ['one', 'two', 'three'],
    'C': [decimal.Decimal('22.3'), decimal.Decimal('34.0'), decimal.Decimal('12.3')]
})

pandas.pivot_table(b, values='C', index='A', columns='B')
                                             
Empty DataFrame
Columns: []
Index: [a, b]

标签: pythonpandasdataframepivot-table

解决方案


b.C有它的dtype作为object。将其转换为数字,它应该可以按预期工作。

b.C = pandas.to_numeric(b.C)
print(pandas.pivot_table(b, values='C', index='A', columns='B'))

推荐阅读