当我尝试在 pandas 版本 2.0.3 中查找平均值时出错

问题描述 投票:0回答:2
df.mean()

我遇到以下错误: ValueError:无法将字符串转换为浮点数

为了解决这个问题,我使用:

df.describe().mean()

这个问题的原因是什么?

python pandas dataframe data-science data-analysis
2个回答
0
投票

您遇到的问题是因为您试图对包含非数字列的 DataFrame 进行平均。 pandas 的mean()函数尝试将所有数据转换为浮点数来计算平均值。如果您的 DataFrame 包含包含非数字数据(例如字符串)的列,您将收到 ValueError: Could not Convert string to float

pandas describe() 函数仅返回 DataFrame 的数字列的描述性统计信息,忽略非数字列。因此,当您调用 describe().mean() 时,您实际上是在对数字列的描述性统计数据进行平均。

来自 pandas 官方文档link

对于通过 DataFrame 提供的混合数据类型,默认为 仅返回数字列的分析。如果数据帧包含 仅包含没有任何数字列的对象和分类数据, 默认是返回对象和分类的分析 列。如果提供 include='all' 作为选项,结果将 包括每种类型的属性的联合。


0
投票

啊。我明白这里发生了什么。检查浮点值并确保它们不包含任何逗号或任何其他字符。您想使用 .Replace 函数来消除那些多余的字符。

© www.soinside.com 2019 - 2024. All rights reserved.