【问题标题】:Is this the correct way to replace a string with the mean of a column in pandas?这是用熊猫中列的平均值替换字符串的正确方法吗?
【发布时间】:2021-10-12 16:01:21
【问题描述】:

我有这个数据框,其中在数据框的某些列中有“无”一词作为字符串。我正在尝试用列的平均值替换该字符串。这是正确的方法吗,因为它不起作用:

X["column"] = X["column"].replace(to_replace="None", value = X["column"].mean())

非常感谢!

【问题讨论】:

  • 是“None”这个词还是python None
  • 我认为“None”(单词“None”作为字符串),我认为(python)None 的行为会像 NaN。
  • 对,所以我想问题是哪一部分是问题所在。如果它是 python None,那么平均值将是正确的,但不会被替换。如果是“无”这个词,则无法计算平均值。 “它不工作”并没有提供任何信息。

标签: python pandas dataframe mean


【解决方案1】:

您首先需要将“None”替换为 NaN 才能计算均值。然后fillna 带有值:

df['column'] = df['column'].replace("None", float('nan'))
df['column'] = df['column'].fillna(df['column'].mean())

【讨论】:

  • 嗨!非常感谢。这是我现在的代码,您建议的第一行有效,但由于某种原因 fillna() 无效。这是我的代码:X["cough"] = X["cough"].replace("None", float('nan')) X["cough"] = X["cough"].fillna(X["cough"].mean())。第一次替换有效,但不幸的是 fillna() 无效。
猜你喜欢
  • 2019-11-23
  • 2020-03-07
  • 2021-12-15
  • 1970-01-01
  • 2019-06-03
  • 2019-03-04
  • 2021-12-28
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多