我有一个pandas数据框,其中大部分填充了实数,但也有一些nan值
如何将nans替换为所在列的平均值
这个问题与这个问题非常相似:numpy数组:用列的平均值替换nan值,但不幸的是,这里给出的解决方案不适用于数据帧
您只需使用DataFrame.fillna直接填充nan:
[27]on
:df
Output[27]:
A、B、C
0 -0.166919 0.979728 -0.632955
1 -0.297953 -0.912674 -1.365463
2 -0.120211 -0.540679 -0.680481
3南-2.027325 1.533582
4楠楠0.461821
5-0.788073楠楠楠
6-0.916080-0.612343 NaN
7-0.887858 1.033826 NaN
8 1.948430 1.025011 -2.982224
9 0.019698 -0.795876 -0.046431
[28]on:df.mean()
Output[28]:
A-0.151121
B-0.231291
C-0.530307
数据类型:64
[29]on df.fillna(df.mean())
Output[29]:
A、B、C
0 -0.166919 0.979728 -0.632955
1 -0.297953 -0.912674 -1.365463
2 -0.120211 -0.540679 -0.680481
3 -0.151121 -2.027325 1.533582
4 -0.151121 -0.231291 0.461821
5 -0.788073 -0.231291 -0.530307
6 -0.916080 -0.612343 -0.530307
7 -0.887858 1.033826 -0.530307
8 1.948430 1.025011 -2.982224
9 0.019698 -0.795876 -0.046431
fillna的docstring说明value应该是标量或dict,但是,它似乎也适用于系列。如果您想传递dict,可以使用df.mean().to_dict()