【问题标题】:df.fillna() does not replace all NaN valuesdf.fillna() 不会替换所有 NaN 值
【发布时间】:2021-07-16 02:48:16
【问题描述】:

我正在尝试使用以下方法替换我的数据框中的 NaN 值:

values = {'pitch_type': 'UN', 'px': -1, 'pz': -1, 'pitch_type_prev': -1,'px_prev': -1, 
          'pz_prev': -1}

df_sample.replace(np.nan, values)

它填充除了两个值之外的所有值。返回的输出是:

pitch_type       px        pz     pitch_type_prev     px_prev         pz_prev
   UN          -1.000   -1.000        -1                 NaN           -1.000
   FF           0.416    2.963        -1                 NaN           -1.000
   FF          -0.191    2.347        FF           (0.0712, 0.508]      2.963

有什么解决办法吗?

【问题讨论】:

  • values 这里不是数据框,也不包含任何 Nan。

标签: python pandas dataframe nan fillna


【解决方案1】:

你可以使用fillna:

df_sample.fillna(values)

输出:

  pitch_type     px     pz pitch_type_prev          px_prev  pz_prev
0         UN -1.000 -1.000              -1               -1   -1.000
1         FF  0.416  2.963              -1               -1   -1.000
2         FF -0.191  2.347              FF  (0.0712, 0.508]    2.963

【讨论】:

  • 这给了我一个“填充值必须在类别中”错误
  • @Iris 看起来您正在尝试使用不在类别列表中的值填充 NaN。您可以将这些值添加为类别(参见例如stackoverflow.com/questions/53664948/…),然后运行fillna
猜你喜欢
  • 2018-03-16
  • 2018-04-17
  • 2021-03-08
  • 2022-07-06
  • 2021-08-17
  • 1970-01-01
  • 2018-11-14
  • 2017-01-22
相关资源
最近更新 更多