首页 > 解决方案 > 使用条件在列中填充 NaN 不起作用

问题描述

train[train['OverallQual']==1]['LotFrontage']
Output:375    NaN
       575     50

train[train['OverallQual']==1]['LotFrontage'].fillna(value=train[train['OverallQual']==1]['LotFrontage'].mean(),inplace=True)

train[train['OverallQual']==1]['LotFrontage']  
Output:375    NaN
       575     50

执行第二条语句
SettingWithCopyWarning 后出现警告:试图在 DataFrame 中的切片副本上设置值

所以,我尝试了另一种分配空值的方法

train[train.iloc[:,17]==1].iloc[:,3] = train[train.iloc[:,17]==1].iloc[:,3].fillna(50,inplace=True)
train[train['OverallQual']==1]['LotFrontage']
Output:375    NaN
       575    50

输出是一样的。未填充空值。

标签: pandasdataframemissing-datasklearn-pandasfillna

解决方案


推荐阅读