📅  最后修改于: 2023-12-03 15:18:15.179000             🧑  作者: Mango
Pandas 是一个广泛使用的 Python 包,它提供了高效的数据结构和数据分析工具。在 Pandas 中,NaN(Not a Number)是指无效或缺失的值。如果数据集中包含缺失值,则需要进行替换或填充等数据清理操作。本文将介绍如何使用 Pandas 替换 NaN 值。
Pandas 包含一个 isna()
函数,用于检查数据集中的 NaN 值。例如:
import pandas as pd
data = pd.DataFrame({'a': [1, 2, 3, None], 'b': [4, None, 6, 7]})
print(data.isna())
结果将输出每个元素是否为 NaN:
a b
0 False False
1 False True
2 False False
3 True False
可以看到,在 data
的第三行第二列存在一个 NaN 值。
Pandas 中的 fillna()
函数可用于替换 NaN 值。例如,我们可以使用平均值来替换 NaN 值:
import numpy as np
data = pd.DataFrame({'a': [1, 2, 3, None], 'b': [4, None, 6, 7]})
mean = np.mean(data['a'])
data = data.fillna(value=mean)
print(data)
结果将输出填充完成后的 data
:
a b
0 1.0 4.0
1 2.0 5.0
2 3.0 6.0
3 2.0 7.0
可以看到,原本的 NaN 值已经被平均值所替换。
如果要替换指定列的 NaN 值,可以使用 Pandas 中的 fillna()
函数的 subset
参数。例如,我们可以只替换 data
中 a
列的 NaN 值:
import numpy as np
data = pd.DataFrame({'a': [1, 2, 3, None], 'b': [4, None, 6, 7]})
mean = np.mean(data['a'])
data = data.fillna(value=mean, subset=['a'])
print(data)
结果将输出只替换 a
列 NaN 值后的 data
:
a b
0 1.0 4.0
1 2.0 NaN
2 3.0 6.0
3 2.0 NaN
如果要替换指定行的 NaN 值,可以使用 Pandas 中的 fillna()
函数的 inplace
参数。例如,我们可以只替换 data
中第二行的 NaN 值:
import numpy as np
data = pd.DataFrame({'a': [1, 2, 3, None], 'b': [4, None, 6, 7]})
mean = np.mean(data['a'])
data.loc[1].fillna(mean, inplace=True)
print(data)
结果将输出只替换 data
中第二行 NaN 值后的 data
:
a b
0 1.0 4.0
1 2.0 2.0
2 3.0 6.0
3 NaN 7.0
在本文中,我们介绍了如何使用 Pandas 替换 NaN 值。使用 Pandas 中的 isna()
函数检查 NaN 值,使用 fillna()
函数替换 NaN 值。使用 subset
参数和 inplace
参数替换指定列和指定行的 NaN 值。Pandas 提供了高效的数据结构和数据分析工具,可以帮助处理包含 NaN 值的数据集。