如何用 pandas 中的字符串值替换 NaN
How to replace NaN with a string value in pandas
我正在研究 Kaggle Housing Prices 项目。
我已经尝试了几个小时来替换字符串列 'BsmtQual' 中的 NaN 值。
对于 BsmtQual 列中具有 NaN 值的 SalePrice 小于 120000 的所有房屋,我想将其替换为 'Fa'.
df 是我的数据框。
Fa_rng = df['SalePrice'] < 120000
我已经尝试了以下所有方法,但没有任何改变。
df.loc[Fa_rng,'BsmtQual'].fillna('Fa',inplace=True)
df.loc[Fa_rng,'BsmtQual'].replace('NaN','Fa',inplace=True)
df.loc[Fa_rng,'BsmtQual'].str.replace('NaN','Fa')
这个收到一条警告说“试图在 DataFrame 的切片副本上设置一个值”并且什么都不做。
df.loc[(df['BsmtQual'].isna()) & (df['SalePrice'] < 120000)].fillna('Fa',inplace=True)
如何将这些房屋的 pandas 中的 NaN 值替换为 'Fa' 字符串?
不要使用 inplace
:
df.loc[Fa_rng & df['BsmtQual'].isna(),'BsmtQual'] = 'Fa'
我正在研究 Kaggle Housing Prices 项目。 我已经尝试了几个小时来替换字符串列 'BsmtQual' 中的 NaN 值。 对于 BsmtQual 列中具有 NaN 值的 SalePrice 小于 120000 的所有房屋,我想将其替换为 'Fa'.
df 是我的数据框。
Fa_rng = df['SalePrice'] < 120000
我已经尝试了以下所有方法,但没有任何改变。
df.loc[Fa_rng,'BsmtQual'].fillna('Fa',inplace=True)
df.loc[Fa_rng,'BsmtQual'].replace('NaN','Fa',inplace=True)
df.loc[Fa_rng,'BsmtQual'].str.replace('NaN','Fa')
这个收到一条警告说“试图在 DataFrame 的切片副本上设置一个值”并且什么都不做。
df.loc[(df['BsmtQual'].isna()) & (df['SalePrice'] < 120000)].fillna('Fa',inplace=True)
如何将这些房屋的 pandas 中的 NaN 值替换为 'Fa' 字符串?
不要使用 inplace
:
df.loc[Fa_rng & df['BsmtQual'].isna(),'BsmtQual'] = 'Fa'