这是用熊猫中列的平均值替换字符串的正确方法吗?

Posted

技术标签:

【中文标题】这是用熊猫中列的平均值替换字符串的正确方法吗?【英文标题】: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,那么平均值将是正确的,但不会被替换。如果是“无”这个词,则无法计算平均值。 “它不工作”并没有提供任何信息。 【参考方案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() 无效。

以上是关于这是用熊猫中列的平均值替换字符串的正确方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何选择数据框中列的前 3 个值 - 熊猫

用相关列的平均值替换数据框中的 NaN 值的函数

熊猫获得列平均值/平均值

如何用python中其他数据帧中的条目替换一个数据帧中列的丢失条目?

有没有办法用数据框中的平均值替换范围数据(例如18-25)?

如何在熊猫数据框中捕获连字符分隔数字的平均值?