pandas 插补:为什么我们用平均值替换nan值,这不会影响我们的数据吗?

g6ll5ycj  于 2022-12-28  发布在  其他
关注(0)|答案(2)|浏览(146)

为什么我们要用Mean值替换DataFrame中的nan值,并且当我们更改它时,它不会影响我们的数据?

0     1.048242
1     1.688173 
2          NaN
3     0.194162
4     0.194162
5     0.493194
6          NaN
7     0.675041
8          NaN
9     0.101743
10    3.112086
df['view_duration'].fillna(mean,inplace = True)
0     1.048242
1     1.688173
2     0.938350
3     0.194162
4     0.194162
5     0.493194
6     0.938350
7     0.675041
8     0.938350
9     0.101743
10    3.112086
8fq7wneg

8fq7wneg1#

用其他相关数据(如均值)替换空值称为插补,通常用于机器学习模型,因为它们不能接受空值。
它不会更改数据的平均值。
请注意,如果同一列中有太多的空值(通常超过30%,但应根据具体情况考虑),那么我们最好不要插补,而是删除空值行。

pxq42qpu

pxq42qpu2#

是的。
我们这样做的原因是,许多算法无法对包含NaN的序列进行运算-一个特别突出的例子是傅里叶变换及其导数。与NaN只是传播,但大部分数据可能保持"干净"的更"规则"的运算不同,如果数据中间有多达一个NaN,时间序列分析就死了。
当然,用平均值替换通常是最明智的默认设置,但也不总是如此。同样,这在时间序列分析中也很突出--如果你错过了高周期性数据中的整个观测周期,用平均值替换会比用"平均"周期趋势的合理近似值替换更严重地扭曲最终结果(通常这是无关紧要的,如果填写的时间太长,影响了分析,那么分析很可能是虚假的)。因此,这是特定于问题的,可能需要极其小心和领域知识来正确地进行。

相关问题