当使用 pandas
库载入数据后,发现数据集中存在缺失值( NaN ),需要对这些缺失值进行处理。Pandas
库提供了一些方法来检查 DataFrame
中的 NaN
值,以及处理这些值的不同方式,下面我将为您详细讲解这个过程。
检查 DataFrame 中的 NaN
可以使用 isnull()
或 isna()
函数来检查 DataFrame
中的缺失值。这些函数将返回一个布尔值的 DataFrame
,其中 True
表示缺失值, False
表示数据存在。
下面是一个检查 DataFrame
中 NaN
值的示例代码:
import pandas as pd
df = pd.read_csv('data.csv')
# 检查 DataFrame 中的 NaN 值
print(df.isnull())
运行结果应该类似于:
name age salary
0 False False False
1 False False True
2 False True False
3 False False False
4 False False False
在上面的示例中,我们使用了 isnull()
函数来检查 DataFrame
中的缺失值,并将结果打印出来。可以看到,第二行的 “salary” 列,第三行的 “age” 列都有缺失值。
处理 NaN
在检查 DataFrame
中的缺失值后,接下来的步骤是对这些值进行处理。下面介绍两种处理 NaN
值的方式:
1. 删除缺失值
可以使用 dropna()
函数删除 DataFrame
中包含 NaN
值的行或列。dropna()
函数可以根据需要的方式删除缺失值,其中常用参数是 how
和 axis
。
-
how
可以取以下值:any
- 如果某行或某列中存在缺失值,则删除该行或该列。all
- 只有当某行或某列所有值都为缺失值时,才删除该行或该列。
-
axis
也有两个选项:0
或'index'
- 删除包含缺失值的行。1
或'columns'
- 删除包含缺失值的列。
下面是一个删除 DataFrame 中所有包含 NaN 值的行的代码示例:
# 删除包含 NaN 值的行
df_new = df.dropna(axis=0, how='any')
在上面的示例中,我们首先使用 dropna()
函数创建了一个新的 DataFrame df_new
来存储删除了 NaN 值的 DataFrame 数据,然后使用 axis=0
将会删除包含 NaN 值的行。
另外,通过将 how='all'
参数传递给 dropna()
函数,可以删除所有值都为 NaN 的行或列。
2. 填充缺失值
另一个常用的方法是使用 fillna()
函数将缺失值替换为其他值。fillna()
函数提供了多种替换缺失值的方式,比如使用平均值、众数或固定值进行填充。
下面是一个用平均值填充 DataFrame 中所有 NaN 值的示例代码:
# 使用平均值填充缺失值
df_mean = df.fillna(df.mean())
在上面的示例中,我们使用 fillna()
函数将 DataFrame
中所有 NaN 值用平均值来替换。
当然,还有其他的填充策略,比如使用众数替换、前向填充或后向填充,您可以根据自己的需求进行选择。
希望这个攻略可以帮您更好地处理数据中的 NaN 值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas检查dataFrame中的NaN实现 - Python技术站