0

I have a pandas dataframe where missing values are indicated as -999.

In [58]: df.head()
Out[58]: 

EventId                    A                  B                    C
100000                   0.91           124.711             2.666000   
100001                -999.00          -999.000            -0.202838   
100002                -999.00          -999.000            -0.202838   
100003                -999.00          -999.000            -0.202838   

I want to replace the missing values (indicated by -999) with the mean of that column taken over non-missing values. Which is the best way to do this? Is there any pandas function which can be used to achieve this easily?

na899
  • 163
  • 1
  • 2
  • 9
  • 2
    duplicate of http://stackoverflow.com/questions/18689823/pandas-dataframe-replace-nan-values-with-average-of-columns – K.Chen Nov 10 '15 at 19:16

1 Answers1

4
df2.replace(-999, np.nan, inplace=True)
df2.fillna(df2.mean())

    EventId A       B        C
0   100000  0.91    124.711  2.666000
1   100001  0.91    124.711 -0.202838
2   100002  0.91    124.711 -0.202838
3   100003  0.91    124.711 -0.202838
hellpanderr
  • 5,581
  • 3
  • 33
  • 43