当我尝试使用 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'
您遇到的错误很可能是由于您的 DataFrame 包含非数字列,并且
df.mean()
仅计算数字列的平均值。当您使用 df.fillna(df.mean(), inplace=True)
时,它会尝试用这些平均值填充所有列,这对于非数字列来说是失败的。
要解决此问题,您应该仅针对数字列来用其平均值填充 NaN 值,并避免使用非数字列。