在数据框列中填充字符串类型的NA时出错

2024-10-02 12:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框列,其中有浮点值和字符串类型NA值。我需要使用以下代码将这些NAs替换为平均值

trainTestJoin["col1"] = trainTestJoin.groupby("col2")["col1"].
     transform(lambda x: x.fillna(x.median()))

我越来越

TypeError: could not convert string to float: NA

在填充之前,我试图转换为

trainTestJoin["LotFrontage"].astype(float)

但它给出了同样的问题。如何解决这个问题


Tags: 数据字符串代码类型transformfloatcol2col1
2条回答

或者干脆replace

trainTestJoin['col1'] = trainTestJoin['col1'].replace('NA',np.nan)

然后简单地说:

trainTestJoin['col1'] = trainTestJoin['col1'].fillna(trainTestJoin.groupby('col2')['col1'].transform('mean'))

现在(毕竟):

print(trainTestJoin)

是预期的产量

使用^{}转换为数值,它支持通过errors='coerce'将不可转换值转换为floatNaN

df['col1'] = pd.to_numeric(df['col1'], errors='coerce')

然后直接使用groupby+transform

df['col1'] = df['col1'].fillna(df.groupby('col2')['col1'].transform('mean'))

相关问题 更多 >

    热门问题