📌  相关文章
📜  替换 pandas 中的 nan - Python (1)

📅  最后修改于: 2023-12-03 15:10:33.921000             🧑  作者: Mango

替换 Pandas 中的 NaN - Python

在 Pandas 中的数据集中可能包含 NaN 值,NaN 值表示缺失值。我们可以使用 Pandas 中的方法来替换 NaN 值。

检测 NaN 值

我们可以使用 isna() 方法来检测数据集中的 NaN 值:

import pandas as pd

data = pd.read_csv('data.csv')
print(data.isna())

输出:

        A      B      C
0   False  False  False
1   False  False   True
2    True   True  False
3   False   True   True
4   False  False   True
5    True  False  False
填充 NaN 值

我们可以使用 fillna() 方法来填充 NaN 值。例如,我们可以用某个常数填充所有的 NaN 值:

data = pd.read_csv('data.csv')

# 用 0 填充所有的 NaN 值
data = data.fillna(0)

print(data)

输出:

     A    B    C
0  1.0  2.0  3.0
1  4.0  5.0  0.0
2  0.0  0.0  6.0
3  7.0  0.0  0.0
4  8.0  9.0  0.0
5  0.0  7.0  8.0

我们也可以用某列的平均值来填充这一列的 NaN 值:

data = pd.read_csv('data.csv')
mean_B = data['B'].mean()

# 用列 B 的平均值填充列 B 的 NaN 值
data['B'] = data['B'].fillna(mean_B)

print(data)

输出:

     A         B    C
0  1.0  2.000000  3.0
1  4.0  5.000000  NaN
2  NaN  4.666667  6.0
3  7.0  4.666667  NaN
4  8.0  9.000000  NaN
5  NaN  7.000000  8.0
删除 NaN 值

我们可以使用 dropna() 方法来删除数据集中的 NaN 值。例如,我们可以删除所有含有 NaN 值的行:

data = pd.read_csv('data.csv')

# 删除所有含有 NaN 值的行
data = data.dropna()

print(data)

输出:

     A    B    C
0  1.0  2.0  3.0

我们也可以删除所有含有 NaN 值的列:

data = pd.read_csv('data.csv')

# 删除所有含有 NaN 值的列
data = data.dropna(axis=1)

print(data)

输出:

     A
0  1.0
1  4.0
2  NaN
3  7.0
4  8.0
5  NaN