一、Dropna的基本用法
Pandas中的dropna
函数是用来滤除缺失数据的。具体如何实现呢?让我们首先来看一下dropna
函数的基本用法。
函数定义:
DataFrame.dropna(
axis=0, # 行或列
how='any', # 如果遇到缺失数据对应的行或列是any或all的话将会被滤除
thresh=None, # 非空数据点数的阈值,取值范围为 [0,无穷大]
subset=None, # 包含探测缺失值的列名的 list
inplace=False # 是否直接操作原数据集而不返回副本
)
参数解释:
axis(整数,默认0): 是否执行按行或列的范畴操作,axis=0按行操作,axis=1按列操作。
how(字符串,默认'any'): 如果遇到缺失数据对应的行或列是 any 或 all 的话将会被滤除。'any'指的是只要有一个缺失数据就删除该行或列;'all'则是只有当行或列中的数据全部为缺失数据时才删除该行或列。
thresh(整数,默认 None): 非空数据点数的阈值。如果某行或列中非空数据点数小于 thresh ,则认为它是一个缺失数据行或列,将该行或列滤除。
subset(由列名称组成的数组,默认 None): 如果指定了 subset 参数,那么 Pandas 会根据 subset 参数指定的列名来执行滤除缺失数据的操作。
inplace(布尔型,默认 False): 是否在原数据集的基础上直接执行操作,直接更改原来的数据,inplace=True。
下面通过一些示例说明dropna
的实现方式。
使用dropna
函数前,需要先导入pandas库,并构造一个数据集:
import pandas as pd
df = pd.DataFrame([['Tom', 174, 68.5], ['Jerry', 168, None], [None,None,None], ['Mary', 159, 54.5]],
columns=['Name', 'Height', 'Weight'])
print(df)
输出结果:
Name Height Weight
0 Tom 174.0 68.5
1 Jerry 168.0 NaN
2 None NaN NaN
3 Mary 159.0 54.5
接着,执行dropna
函数:
df = df.dropna()
print(df)
输出结果:
Name Height Weight
0 Tom 174.0 68.5
3 Mary 159.0 54.5
可以看到,与原数据相比,缺失的行被滤除了。
二、指定操作按行或按列进行
dropna
函数中的axis
参数用于指定按行或按列操作。默认值为0,表示按行处理。下面,我们来看一下如何使用dropna
函数来指定操作按列进行。
通过示例介绍,如何使用dropna
函数指定按列进行处理:
import pandas as pd
df = pd.DataFrame([['Tom', 174, 68.5], ['Jerry', 168, None], [None,None,None], ['Mary', 159, 54.5]],
columns=['Name', 'Height', 'Weight'])
print(df)
df = df.dropna(axis=1)
print(df)
输出结果为:
Height
0 174.0
1 168.0
2 NaN
3 159.0
由于这次指定了按列进行处理,所以滤除后的数据只剩下'Height'
一列,其他列全部被滤除。
三、总结
一个数据集中如果有一些缺失的数据,那么它会影响到数据的处理与分析。因此,在数据处理和数据分析过程中,我们通常需要去掉这些缺失的数据。而dropna
函数就是一个常用的滤除缺失数据的函数,其效率高、功能强大,使用方便。
关于dropna
函数的详情,可以查看官方文档:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html。
本文链接:http://task.lmcjl.com/news/17373.html