Pandas DataFrame:用列平均值替换NaN值

Pandas DataFrame:用列平均值替换NaN值

在本文中,我们将介绍如何在Pandas DataFrame中将NaN值替换为列的平均值。NaN值指的是缺失值或不可用值。在处理数据时,NaN值是常见的情况,需要处理以便进行分析和建模。我们将在本文中给出替换所有NaN值的代码示例。

阅读更多:Pandas 教程

创建一个DataFrame

首先,我们需要按以下方式创建DataFrame,并生成一些NaN值来演示代码:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(5, 3))
df.iloc[0, 0] = np.nan
df.iloc[1, 1] = np.nan
df.iloc[2, 2] = np.nan
df.iloc[3, 0] = np.nan
df.iloc[4, 1] = np.nan
df
Python

这将得到如下DataFrame:

0 1 2
0 NaN 0.902266 0.393517
1 0.841493 NaN 0.808646
2 0.078527 0.664319 NaN
3 NaN 0.056423 0.828458
4 0.032965 NaN 0.374865

替换NaN值

接下来,我们需要使用以下代码替换NaN值:

df = df.fillna(df.mean())
Python

这将使用每列的平均值来替换NaN值。新的DataFrame将如下所示:

0 1 2
0 0.45166149 0.902266 0.393517
1 0.841493 0.5260025 0.808646
2 0.078527 0.664319 0.50849575
3 0.45166149 0.056423 0.828458
4 0.032965 0.5260025 0.374865

这些NaN值都已被替换为相应列的平均值。

只替换指定列的NaN值

有时,我们只需要替换特定列的NaN值。对于这种情况,我们可以使用以下代码:

df['col1'] = df['col1'].fillna(df['col0'].mean())
Python

这将使用“col0”列的平均值来替换“col1”列中的NaN值。可以根据需要添加更多替换语句。

总结

在本文中,我们介绍了如何在Pandas DataFrame中用列平均值替换NaN值。该方法可以用于降低数据集中NaN值的影响,使数据更适合机器学习和数据分析。在执行这些替换操作时,请确保对数据集预先进行了必要的缺失值处理和清洗。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册