【问题标题】:pandas replace null values for a subset of rows and columnspandas 替换行和列子集的空值
【发布时间】:2018-10-26 13:50:43
【问题描述】:

在 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。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

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

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

    【讨论】:

    • 如果df.col2.notna 和 col1 是 na 则没有简单的方法,然后简单地 zerp col1 值,只是想大声:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2015-10-31
    • 2020-10-14
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多