python - 为什么在熊猫中创建数据透视表时十进制不起作用?
问题描述
以下工作正常:
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]
解决方案
b.C
有它的dtype
作为object
。将其转换为数字,它应该可以按预期工作。
b.C = pandas.to_numeric(b.C)
print(pandas.pivot_table(b, values='C', index='A', columns='B'))
推荐阅读
- rxjs - 将 .groupBy 与 Firestore 收集数据一起使用
- javascript - 如何使用 JavaScript 在另一个表中创建一个表?
- python-3.x - python中如何提取随机森林的决策规则?
- android - Android - 登录谷歌 AWS Amplify - 模板格式错误:YAML 格式不正确
- flask - Flask WTForms 子表单和一个通用表单内的独立验证
- html - 强制 CSS 背景图像为 HTTPS
- haskell - 缺少结果类型?在函数长度 :: Monad m => ByteString mr -> m (Of Int r)
- docker - docker-compose 不初始化容器环境变量
- idris - 在 REPL 中使用重写
- python - 使用导入的函数保存输出变量