使用Pandas数据框中的列平均值替换NaN

31 浏览
0 Comments

使用Pandas数据框中的列平均值替换NaN

我有一个主要由实数填充的pandas DataFrame,但其中也有一些nan值。

我该如何用它们所在列的平均值替换这些nan值?

这个问题与这个问题非常相似:numpy array: replace nan values with average of columns,但不幸的是,那里给出的解决方案对于pandas DataFrame无效。

0
0 Comments

问题的原因是在Pandas数据框中存在NaN值,需要用列的平均值来替换这些NaN值。在给出的代码中,通过使用`fillna()`函数和`mean()`函数来实现这个目的。`fillna()`函数将NaN值替换为提供的值(在这里是列的平均值),`mean()`函数计算了列的平均值。通过将`inplace`参数设置为True,可以直接在原始对象上进行修改,而不需要创建一个修改后的副本。如果`inplace`参数设置为False(默认值),则函数不会修改原始对象,而是返回一个修改后的副本,需要将其赋值给原始对象以进行替换。

这个问题的解决方法是使用`fillna()`函数和`mean()`函数。下面的代码演示了如何将NaN值替换为列的平均值:

sub2['income'].fillna((sub2['income'].mean()), inplace=True)

这行代码将数据框sub2中的'income'列的NaN值替换为该列的平均值。

如果想了解更多关于`inplace`参数的信息,可以参考这个Stack Overflow链接

0