2016-12-30 3 views
0

У меня есть dataframe с большим количеством значений NaN:Панды: не fillna работает, как ожидалось

ДФ = pd.read_csv (Filepath)

ДФ выглядит как:

x001 x002 x003 x004 x005 x006 x007 x008 x009 x010 ... x296 x297 x298 x299 x300 x301 x302 x303 x304 y 
0 1540332 NaN NaN NaN 8.0 1 0 1 0 0 ... 0 NaN 0 0 0 0 NaN 0 NaN 706 

Когда я выполните следующие действия:

df2 = df.fillna(lambda x: df.median()) 

df2 выглядит следующим образом:

x001 x002 x003 x004 x005 x006 x007 x008 x009 x010 ... x296 x297 x298 x299 x300 x301 x302 x303 x304 y 
0 1540332 <function <lambda> at 0x110b48488> <function <lambda> at 0x110b48488> <function <lambda> at 0x110b48488> 8 1 0 1 0 0 ... 0 <function <lambda> at 0x110b48488> 0 0 0 0 <function <lambda> at 0x110b48488> 0 <function <lambda> at 0x110b48488> 706 
1 823066 4 

Я не могу понять, почему вместо того, чтобы заменить NAN значения с медианой, я вижу <function <lambda> at 0x110b48488>

p.s Я пытался в виду, как хорошо, но такие же результаты.

+0

Почему бы не 'df.fillna (df.median())'? – Zero

+0

df.fillna (lambda x: df.mean()) возвращает новый dataframe с тем же выходом – futurenext110

ответ

1

Вам не нужна лямбда-функция.

df.fillna(df.mean()) 
+0

Arghh .... спасибо тонну! – futurenext110

+0

Добро пожаловать! – Shobeir

Смежные вопросы