python - pandas 替换行和列子集的空值

标签 python pandas

在 pandas 数据框中,如果另一列中的值不是 nan,我想用零替换 nan 值。 我试图改编这个问题的答案:pandas replace null values for a subset of columns

但是,不会替换 nan 值(请参阅下面的代码)。我做错了什么?提前谢谢你。

df.loc[df['Litho'].notnull(),'Mu_alt'].fillna(0, inplace=True)
df.loc[df['Litho'].notnull(),'Mu_alt']
>>>0      NaN
>>>1      NaN
>>>2      NaN
>>>3      NaN
>>>4      NaN
>>>5      NaN
>>>6      NaN
>>>7      NaN

如果我在第一行中将 df['Litho'].notnull() 替换为 :,则 nan 值将替换为 0。

最佳答案

为避免 chained assignments 分配回替换值:

m = df['Litho'].notnull()
df.loc[m,'Mu_alt'] = df.loc[m,'Mu_alt'].fillna(0)

关于python - pandas 替换行和列子集的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53010254/

相关文章:

python - 将数据帧转换为长的、保留索引的列

python - 高频声音Python

python - 在 Python 中为大型数据集创建邻接矩阵

python - Pandas - 在重命名期间创建多索引列

python - 如何使用 pandas 使用列与列列表和值列表之间的匹配来填充数据框?

python - xarray - 从另一个 DataArray 的时间标签中选择/索引 DataArray

python - Pandas + HDF5面板数据存储可存储大数据

python - 如何隐藏QGraphicSscene中的特定项目?

python - PAM Python Unix 身份验证,无需 root 权限

python - pandas Series.value_counts 返回相等计数字符串的不一致顺序