为什么 fillna with mode 不替换数据框中的 nan 值?

PVL*_*PVL 5 python nan dataframe pandas fillna

我正在尝试使用函数替换数据框列“功能”中的 nan 值fillna()。我面临的问题如下:

  1. 我可以使用以下方法检测空值isnull()

dfcomp[dfcomp['Functional'].isnull()==True]

搜索空值

  1. 使用上面的索引我搜索了实际值

dfcomp['Functional'][2216]

使用索引进行值搜索

  1. 但是当我尝试使用 填充 nan 时fillna(),没有任何反应。即使在运行 fillna 语句之后,我也可以重新运行第一个语句并看到相同的 2 个 nan 实例。

dfcomp['Functional']=dfcomp['Functional'].fillna(value=dfcomp['Functional'].mode())

顺便说一句我已经尝试过两个版本

dfcomp['Functional'].fillna(value=dfcomp['Functional'].mode(),inplace=True)

fillna()

  1. 我也尝试使用replace()该功能,但没有运气

dfcomp['Functional']=dfcomp['Functional'].replace({'nan':dfcomp['Functional'].mode()})

我的代码有问题吗?为什么fillna()不认识到什么nan时候isnull()可以这样做呢?另外,为什么索引搜索显示的值是,但是当我尝试使用没有结果nan替换相同的值时?replace()

fillna()当我无法识别nan 值时,如何替换它?

Adr*_*n B -1

为了填充 NaN 值,可以使用以下代码:

dfcomp = dfcomp.fillna(value=0)

稍后更新:

dfcomp['Functional'] = dfcomp['Functional'].fillna(dfcomp['mode'])