Fillna con pandas malas
sub2['income'].fillna((sub2['income'].mean()), inplace=True)
Inquisitive Ibex
sub2['income'].fillna((sub2['income'].mean()), inplace=True)
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
When inplace = True , the data is modified in place, which means it will return nothing and the dataframe is now updated. When inplace = False , which is the default, then the operation is performed and it returns a copy of the object. You then need to save it to something.