【问题标题】:Python - Treating the string 'NA' as Null or NaN to do fillna()Python - 将字符串 'NA' 视为 Null 或 NaN 以执行 fillna()
【发布时间】:2020-04-02 18:23:02
【问题描述】:

我有一个数据框:

mydf = pd.DataFrame({'foo': ['bar', 'NA', 'Bar'], 'bar': ['NA', 'foo', 'NA']})

我想使用fillna() 函数填充“NA”值。 但是,fillna() 不会将“NA”检测为 Null/NaN 值。

我是否必须将所有“NA”转换为 NaN?或者有没有办法在我的数据框中将“NA”视为 NaN?

【问题讨论】:

  • 没有。您必须将 NA 替换为 np.nan
  • mydf.replace('NA', np.nan) ?
  • 真的,你应该在别处解决这个问题。没有理由将'NA' 存储为字符串而不是可识别空值的值。在某些情况下,您是否有一些函数返回 'NA'pd.read_csv 将考虑 na_value 以及该字符串的许多其他形式,因此如果您正在解析文件,则应在读取时将其转换为 NaN

标签: python pandas dataframe null fillna


【解决方案1】:

你可以使用替换功能

mydf.replace('NA', <value_you_want>, inplace=True)

或者,首先,将 'NA' 替换为 NaN 并使用 fillna 方法

import numpy as np
mydf.replace('NA', np.nan, inplace=True)
mydf.fillna(<value_you_want>)

【讨论】:

    【解决方案2】:

    您需要将所有 'NA' 转换为 NumPy.nan 值,因为 python 检测到 'None' 而不是 'NA'。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2021-12-20
      相关资源
      最近更新 更多