我在熊猫中有以下数据框 C1 C2 C3 10 a b 10 a b ? c c ? ? b 10 a b 10 ? ?我想?在适用的地方用平均值和模式替换我想要的数据框是 C1 C2 C3 10 a b 10 a b 10 c c 10 a b 10 a b 10 a b 我试过跟随熊猫,但没有奏效。 df[df['C1'] == '?'] = df[df['C1' != '?'].mean()
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
您需要分别处理数字和非数字列
df.replace('?', np.nan, inplace = True)
df['C1'] = df['C1'].astype(float)
df['C1'] = df['C1'].astype(float).fillna(df['C1'].mean())
non_numeric = ['C2', 'C3']
df[non_numeric]=df[non_numeric].fillna(df.mode().iloc[0])
C1 C2 C3
0 10.0 a b
1 10.0 a b
2 10.0 c c
3 10.0 a b
4 10.0 a b
5 10.0 a b
添加回答
举报
0/150
提交
取消