Pandas 中如何删除缺失值占比超过 25% 的列?

在数据分析中,处理缺失值是常见问题。如果 DataFrame 中某一列的缺失值占比过高,则可能需要删除该列以避免对后续分析产生负面影响。本指南将介绍如何使用 Pandas 删除缺失值占比超过 25% 的列。

使用 dropna 函数和 thresh 参数

Pandas 提供了 dropna 函数,它可以用于删除包含缺失值的特定行或列。我们可以使用 thresh 参数来指定 DataFrame 中每行或列需要保留的非缺失值数量。

以下步骤详细说明如何删除缺失值占比超过 25% 的列:

  1. 标记缺失值: 使用 isnull 函数将 DataFrame 中的缺失值标记为 True。
  2. 计算缺失值数量: 使用 sum 函数计算每列中缺失值的数量。
  3. 计算缺失值占比: 将缺失值数量除以 DataFrame 的总行数,得到每列缺失值的占比。
  4. 筛选要删除的列: 使用 dropna 函数的 thresh 参数,保留每列中非缺失值数量大于等于 DataFrame 行数的 75% 的列(即缺失值占比不超过 25%)。

示例代码

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, 4, 5],
        'C': [1, None, 3, 4, 5],
        'D': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 计算每列缺失值的数量
missing_values = df.isnull().sum()

# 计算每列缺失值的占比
missing_percentage = missing_values / len(df)

# 获取缺失值占比超过 25% 的列
columns_to_drop = missing_percentage[missing_percentage > 0.25].index

# 删除缺失值占比超过 25% 的列
df = df.dropna(thresh=len(df) * 0.75, axis=1)

在上述代码中,thresh=len(df) * 0.75 表示每列中非缺失值数量需要大于等于 DataFrame 行数的 75%,才能保留该列。

总结

通过使用 dropna 函数和 thresh 参数,我们可以轻松地删除 Pandas DataFrame 中缺失值占比超过 25% 的列。这有助于提高数据质量,并确保后续分析结果的可靠性。

Pandas 删除缺失值占比超过 25% 的列:完整指南

原文地址: https://www.cveoy.top/t/topic/hE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录