[python] 我如何在熊猫数据框的一列中用Zero替换所有的NaN值



Answers

不保证切片返回视图或副本。 你可以做

df['column']=df['column'].fillna(value)
Question

我有一个数据框如下

      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我已经尝试了熊猫.replace属性我尝试从熊猫0.9的.sparse数据属性我也尝试如果NaN == NaN语句在函数中。 我也看过这篇文章如何用R数据框中的零代替NA值? 同时看一些其他的文章。 我尝试过的所有方法都没有工作或不认识NaN。 任何提示或解决方案,将不胜感激。




fillna()是最好的方法。 代码 -

#fill all Nan value with zero
df = df.fillna(0)

如果你不想使用' df = df.fillna(value) ',你也可以使用inplace 。 代码 -

df.fillna(0, inplace=True)



以下代码适用于我。

import pandas

df = pandas.read_csv('somefile.txt')

df = df.fillna(0)



Links