Pandas||过滤缺失数据||pd.dropna()函数的用法说明

Pandas是Python数据科学的核心库,其提供了大量实用的函数和方法来处理数据。当处理数据时,常常会遇到一些缺失数据,因此需要用到pd.dropna()函数来过滤掉缺失数据。

pd.dropna()函数的用法

语法

DataFrame.dropna(
    axis=0,
    how='any',
    thresh=None,
    subset=None,
    inplace=False
)

参数说明

  • axis:指定删除行(行索引为 axis=0)还是删除列(列索引为 axis=1)的缺失数据,默认为删除行。
  • how:指定删除方式,可选参数包括 anyall。参数 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

示例 1:删除含有缺失数据的行

删除含有缺失数据的行,可以使用 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:删除缺失值数量大于等于2的行

删除缺失值数量大于等于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

展开阅读全文