用熊猫的平均值和众数替换缺失值

时间:2019-02-15 05:10:18

标签: python pandas

我在熊猫中有以下数据框

 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 个答案:

答案 0 :(得分:4)

您需要分别处理数字和非数字列

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