📅  最后修改于: 2023-12-03 15:07:45.211000             🧑  作者: Mango
在数据分析或机器学习中,数据往往有缺失值,需要处理后才能进行后续的分析。在 Pandas DataFrame 中,可以使用多种方法处理 NaN 或缺失值。
使用 isna() 或 isnull() 方法检查 DataFrame 中的缺失值(NaN)。这些方法将返回一个布尔值的 DataFrame,说明每个元素是否为空。
import pandas as pd
df = pd.DataFrame({'a': [1, 2, None], 'b': [4, None, 6]})
print(df.isna())
输出:
a b
0 False False
1 False True
2 True False
可以看到 DataFrame 中的每个元素都被标记为 True 或 False。
使用 isna() 或 isnull() 方法的 sum() 可以统计 DataFrame 中每列的缺失值数量。
import pandas as pd
df = pd.DataFrame({'a': [1, 2, None], 'b': [4, None, 6]})
print(df.isna().sum())
输出:
a 1
b 1
dtype: int64
可以看到每列的缺失值数量,这可以提供数据清洗时的指导。
使用 dropna() 方法删除 DataFrame 中包含空值的行或列。
import pandas as pd
df = pd.DataFrame({'a': [1, 2, None], 'b': [4, None, 6]})
print(df.dropna(axis=0))
输出:
a b
0 1.0 4.0
可以看到 DataFrame 中仅包含没有缺失值的行。
使用 fillna() 方法可以填充 DataFrame 中的空值。
import pandas as pd
df = pd.DataFrame({'a': [1, 2, None], 'b': [4, None, 6]})
print(df.fillna(0))
输出:
a b
0 1.0 4.0
1 2.0 0.0
2 0.0 6.0
可以看到空值被填充为了 0。
使用 replace() 方法可以将 NaN 替换为指定的值。
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, 2, None], 'b': [4, None, 6]})
df.replace([np.nan], [-1], inplace=True)
print(df)
输出:
a b
0 1.0 4.0
1 2.0 -1.0
2 -1.0 6.0
可以看到空值被替换为 -1。
以上就是在 Pandas DataFrame 中计算 NaN 或缺失值的方法,通过这些方法可以处理缺失值且继续进行数据分析。