【问题标题】:Replacing NaN values in python with regards to a condition concerning another column关于另一列的条件替换python中的NaN值
【发布时间】:2021-02-20 20:39:40
【问题描述】:

大家晚上好!

我在使用 pandas 的 python 中遇到 NaN 值的问题。 我正在研究包含不同国家信息的数据库。 我无法完全摆脱我所有的 NaN 值,否则我会丢失太多数据。

我希望根据某些条件替换 NaN 值。

The dataframe I am working on

我想要创建一个新列,该列将采用列的现有值(此处:OECDSTInterbkRate)并根据特定条件替换其所有 NaN 值。

例如,我想将与澳大利亚对应的 NaN 替换为我已有的澳大利亚值的移动平均值。

对于我缺失值的所有其他国家/地区也是如此(将法国在此列中的 NaN 观察值替换为我已经拥有的法国值的移动平均值等)。

你认为我可以使用哪段代码?

非常感谢您的帮助!

【问题讨论】:

  • 请不要提供指向非文本数据集或代码的链接。这是非常无益的。此外,尝试提供最少的代码集来重现您遇到的问题。在这种情况下,一个带有 NaN 的短 pandas 数据框,以易于重现的代码创建。人们不会花时间重新创作你的作品。
  • 当然,我会尝试更新我的问题,但是作为 python 的初学者,我不确定我知道该怎么做。无论如何我会尝试,谢谢您的反馈!

标签: python pandas conditional-statements nan economics


【解决方案1】:

也许你可以试试df.fillna(df.mean(), inplace=True)df.mean() 替换为您的平均值。

【讨论】:

  • 我明白了,非常感谢!但这会导致用整个列的平均值替换 nan,我猜.. 我怎样才能将它与条件结合起来:“如果国家 = 澳大利亚,那么平均值(澳大利亚值)?
  • 用 df.['Australia'].mean 替换 df.mean() 尝试上传实际的数据集值/链接,而不是图像。
猜你喜欢
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 2020-05-16
  • 2023-03-15
相关资源
最近更新 更多