用列平均值替换熊猫数据框中的NaN

时间:2018-07-15 01:55:21

标签: python pandas dataframe

这里是熊猫新手。我有一个数据框,某些值为“?”我已成功将其替换为“ NaN”。我想用列的平均值替换“ NaN”,但是,我遇到了一个问题,即“ NaN”没有被删除。根据下面的内容,我已经查看了下面的解决方案,但是它不起作用。

pandas DataFrame: replace nan values with average of columns

代码:

       df = pd.DataFrame(cancer)
       print(df)
       df['A7'] = df['A7'].replace(['?'],"NaN")
       print(df)
       # the code below is where my issue arises
       df.fillna(df.mean())
       print(df)

之前?被NaN代替:

     Scn  A2  A3  A4  A5  A6  A7  A8  A9  A10  CLASS
     [.....]
     21   1054593  10   5   5   3   6   7   7  10    1      4
     22   1056784   3   1   1   1   2   1   2   1    1      2
     23   1057013   8   4   5   1   2   ?   7   3    1      4

在将NaN替换为均值之前:

     Scn  A2  A3  A4  A5  A6   A7  A8  A9  A10  CLASS
     [.....]
     21   1054593  10   5   5   3   6    7   7  10    1      4
     22   1056784   3   1   1   1   2    1   2   1    1      2
     23   1057013   8   4   5   1   2  NaN   7   3    1      4

将NaN替换为平均值后:

     Scn  A2  A3  A4  A5  A6   A7  A8  A9  A10  CLASS
     [.....]
     21   1054593  10   5   5   3   6    7   7  10    1      4
     22   1056784   3   1   1   1   2    1   2   1    1      2
     23   1057013   8   4   5   1   2  NaN   7   3    1      4

我不确定自己做错了什么。

0 个答案:

没有答案