Pandas是Python数据科学的核心库,其提供了大量实用的函数和方法来处理数据。当处理数据时,常常会遇到一些缺失数据,因此需要用到pd.dropna()
函数来过滤掉缺失数据。
pd.dropna()
函数的用法DataFrame.dropna(
axis=0,
how='any',
thresh=None,
subset=None,
inplace=False
)
axis
:指定删除行(行索引为 axis=0
)还是删除列(列索引为 axis=1
)的缺失数据,默认为删除行。how
:指定删除方式,可选参数包括 any
和 all
。参数 any
表示只要存在任意一个缺失值,就删除整行或整列。参数 all
表示只有当整行或整列的所有元素都是缺失值时,才进行删除。thresh
:指定非缺失数据的最小数量。如果一个行或列中非缺失值小于 thresh
,则该行或列将被删除。subset
:指定删除时要考虑的列或行子集。可以是列或行标签列表、表示切片的元组或单个标签/索引。inplace
:是否直接在原数据集上进行修改。默认为 False
。现假设我们有一份包含缺失数据的数据集,如下所示:
import pandas as pd
data = {
'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'性别': ['男', '女', '男', None, '男'],
'年龄': [18, 25, None, 32, 41],
'身高': [170, 160, 175, None, 180],
'体重': [60, None, None, 75, 70]
}
df = pd.DataFrame(data)
print(df)
输出结果如下:
姓名 性别 年龄 身高 体重
0 张三 男 18.0 170.0 60.0
1 李四 女 25.0 160.0 NaN
2 王五 男 NaN 175.0 NaN
3 赵六 None 32.0 NaN 75.0
4 钱七 男 41.0 180.0 70.0
删除含有缺失数据的行,可以使用 how='any'
表示只要存在任意一个缺失值,就删除:
df.dropna(how='any', inplace=True)
print(df)
输出结果如下:
姓名 性别 年龄 身高 体重
0 张三 男 18.0 170.0 60.0
4 钱七 男 41.0 180.0 70.0
删除缺失值数量大于等于2的行,可以使用 thresh
参数指定要删除的缺失值数量:
df.dropna(thresh=3, inplace=True)
print(df)
输出结果如下:
姓名 性别 年龄 身高 体重
0 张三 男 18.0 170.0 60.0
1 李四 女 25.0 160.0 NaN
4 钱七 男 41.0 180.0 70.0
上述示例只是部分使用 pd.dropna()
函数的场景,实际上,该函数可以在数据清洗和预处理过程中大显身手。
本文链接:http://task.lmcjl.com/news/17579.html