【问题标题】:How to correctly replace na with 0 in pandas dataframe?如何在熊猫数据框中正确地将 na 替换为 0?
【发布时间】:2022-01-17 23:03:43
【问题描述】:

我有一个数据框,当我运行这段代码时:

print('NA: ', df.columns[df.isin([np.nan]).any()])

它带来了:

NA:  Index(['col1', 'col2'],
      dtype='object') 

这里 col1 的外观例如 df['col1']:

col1
1.0
1.0
1.0
1.0
1.0
...
1.0
1.0

但是在我这样做之后:

df[['col1', 'col2']] = df[['col1', 'col2']].fillna(0, inplace=True)

它将 col1 和 col2 变成:

col1
None
None
None
None
None
...
None
None

如何正确替换这些列中的 Na?我做错了什么?

【问题讨论】:

    标签: python python-3.x dataframe na fillna


    【解决方案1】:

    这是因为您使用的是就地和列映射。您需要在两者之间选择一个

    df[['col1', 'col2']] = df[['col1', 'col2']].fillna(0, inplace=False)
    

    df[['col1', 'col2']].fillna(0, inplace=True)
    

    后面的返回None,所以你的代码会这样做

    • 在 NaN 为 0 的地方就地插补
    • col1col2 的所有条目复制None

    因此你的观察。

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 2012-10-21
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多