我有一个包含很多NAN值的数据框:
df = pd.read_csv(文件路径)
df看起来像:
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 :(得分:1)
你不需要lambda功能。
df.fillna(df.mean())