如何用熊猫数据栏中的Zero替换所有NaN值

如何用熊猫数据栏中的Zero替换所有NaN值

我有如下所示的数据

      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

当我试图将函数应用到AUNT列时,我会得到以下错误。

ValueError: cannot convert float NaN to integer

我尝试使用数学模块中的.isnan应用一个函数,我尝试了熊猫.替换属性,我尝试了来自熊猫0.9的.稀疏数据属性,我也尝试过如果在函数中使用nan=nan语句。我也看过这篇文章如何将R数据中的NA值替换为0?在看其他文章的时候。我尝试过的所有方法都没有奏效,或者没有认识到南。任何提示或解决方案将不胜感激。


守着一只汪
浏览 682回答 3
3回答

慕运维8079593

你可以用replace改变NaN到0:import pandas as pdimport numpy as np# for columndf['column'] = df['column'].replace(np.nan, 0)# for whole dataframedf = df.replace(np.nan, 0)# inplacedf.replace(np.nan, 0, inplace=True)

心有法竹

我相信DataFrame.fillna()会为你做这件事。链接到文档数据而为了系列.例子:例子:In [7]: dfOut[7]:           0         10       NaN       NaN1 -0.494375  0.5709942       NaN       NaN3  1.876360 -0.2297384       NaN       NaNIn [8]: df.fillna(0)Out[8]:           0         10  0.000000  0.0000001 -0.494375  0.5709942  0.000000  0.0000003  1.876360 -0.2297384  0.000000  0.000000若要只在一列中填充NAN,请选择该列。在本例中,我使用inplace=True来实际更改DF的内容。In [12]: df[1].fillna(0, inplace=True)Out[12]: 0    0.0000001    0.5709942    0.0000003   -0.2297384    0.000000Name: 1In [13]: dfOut[13]:           0         10       NaN  0.0000001 -0.494375  0.5709942       NaN  0.0000003  1.876360 -0.2297384       NaN  0.000000

冉冉说

不能保证切片返回视图或副本。你可以df['column'] = df['column'].fillna(value)
打开App,查看更多内容
随时随地看视频慕课网APP