当我尝试用平均值填充所有列中的 NaN 值时出现错误

问题描述 投票:0回答:1

当我尝试使用 fillna 用平均值填充所有列中的 NaN 值时,我遇到错误: df.fillna(df.mean(),inplace=True)

ValueError:无法将字符串转换为浮点数:'MMMMMMMMMMMMMMMMMBBBMMMMMMMMMMMMMBMMBMMMMMBMBBBBBMMBMMBBBBMBMMBBBBMBBB'

我尝试用平均值填充数据框中的 NaN 我检查所有列的平均值

df.isnull().sum()

id 0

诊断0

半径_平均值0

纹理_平均值21

周长平均值 0

面积_平均值0

平滑度_平均值 48

紧凑度_平均值0

凹度平均值 0

凹点均值 0

对称_平均值 65

分形维数平均值 0

d类型:int64

df[['texture_mean','smoothness_mean','symmetry_mean']].mean()

纹理_平均值19.293431

平滑度平均值 0.096087

对称均值 0.181091

d类型:float64

使用手段来填补缺失值

df.fillna(df.mean(),inplace=True)

我遇到错误:

ValueError:无法将字符串转换为浮点数:'MMMMMMMMMMMMMMMMMBBBMMMMMMMMMMMMMBMMBMMMMMBMBBBBBMMBMMBBBBMBMMBBBBMBBB'

python dataframe nan mean fillna
1个回答
0
投票

您遇到的错误很可能是由于您的 DataFrame 包含非数字列,并且

df.mean()
仅计算数字列的平均值。当您使用
df.fillna(df.mean(), inplace=True)
时,它会尝试用这些平均值填充所有列,这对于非数字列来说是失败的。

要解决此问题,您应该仅针对数字列来用其平均值填充 NaN 值,并避免使用非数字列。

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