【发布时间】:2014-03-03 08:50:25
【问题描述】:
正如标题所说,
diag_code = df.pivot_table('PayabletoProvider',rows='DiagnosisCode',aggfunc=sum)
将数据透视函数应用于我的 df 后,我返回的数据没有意义:
DiagnosisCode ------ PayabletoProvider
002 -------------------- NaN
003 -------------------- NaN
004 -------- 1824.70143.80220.001640.2540.00282.00946.31250...
005 -------------------- NaN
006 -------- 3324.95432.482400.65
不明白为什么会发生这种情况,因为 Excel 中的结果似乎还可以并相应地求和。
如果有人能帮我解决这个问题,我们将不胜感激。
【问题讨论】:
-
有哪些数据类型?如果您有可能导致问题的混合类型。例如,您不能在 pandas 中对字符串和浮点数的混合求和,但 Excel 会默默地删除字符串值并对浮点数求和。
-
@rauparaha 我使用 Excel 来检查 IsNumber 是否和所有 True。可能是不同的数字类型也会导致此问题吗?无论如何我可以复制像 Excel 这样删除字符串类型的函数吗?我从一小部分数据开始,但我使用的是 Pandas,因为数据大小将跨越几百万,而 Excel 会失败。
-
我不知道您是如何导入的,但例如有一个错误。未指定所有 NA 标记的 CSV 导入可能会导致类型检测不正确。使用
df.info()检查您的列类型是否正确,而不是object。在没有确定问题根源的情况下删除字符串应该是最后的手段,但look here 是如何做到的。 -
@rauparaha 我想为了避免,导入的第一步是确保正确声明所有数据类型并指定所有 NA 标记?感谢您的帮助。