我有一个熊猫数据框如下:
itm Date Amount
67 420 2012-09-30 00:00:00 65211
68 421 2012-09-09 00:00:00 29424
69 421 2012-09-16 00:00:00 29877
70 421 2012-09-23 00:00:00 30990
71 421 2012-09-30 00:00:00 61303
72 485 2012-09-09 00:00:00 71781
73 485 2012-09-16 00:00:00 NaN
74 485 2012-09-23 00:00:00 11072
75 485 2012-09-30 00:00:00 113702
76 489 2012-09-09 00:00:00 64731
77 489 2012-09-16 00:00:00 NaN
当我尝试将函数应用于金额列时,出现以下错误:
ValueError: cannot convert float NaN to integer
我尝试使用数学模块中的 .isnan 应用函数 我尝试了 pandas .replace 属性 我尝试了 pandas 0.9 中的 .sparse 数据属性 我也尝试过函数中的 if NaN == NaN 语句。我也看过这篇文章 How do I replace NA values with zeros in an R dataframe? 在看其他文章的时候。我尝试过的所有方法都不起作用或无法识别 NaN。任何提示或解决方案将不胜感激。
原文由 George Thompson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我相信
DataFrame.fillna()
会为你做这件事。链接到 数据框 和 系列 的文档。
例子:
要仅在一列中填充 NaN,请仅选择该列。在这种情况下,我使用 inplace=True 来实际更改 df 的内容。
编辑:
要避免
SettingWithCopyWarning
,请使用内置的特定于列的功能: