Pandas处理缺失值的7种方法

文摘   2024-10-29 10:16   湖北  

在数据分析中,处理缺失值数据是一项重要的任务。Pandas库提供了多种方法来处理缺失值。本文将介绍几种常用的方法。

1. 删除包含缺失值的行

import pandas as pd
import numpy as np

# 创建一个带有缺失值的DataFrame
data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8]}
df = pd.DataFrame(data)

# 删除包含缺失值的行
df_dropped = df.dropna()
df_dropped

注释: dropna()函数用于删除包含缺失值的行,默认删除任何包含缺失值的行。

2. 删除包含缺失值的列

# 删除包含缺失值的列
data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
df_dropped_cols = df.dropna(axis=1)
df_dropped_cols

注释: dropna(axis=1)用于删除包含缺失值的列。

3. 填充缺失值

data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
df_filled = df.fillna(0)
df_filled

注释: fillna()函数用于用指定值(这里是0)填充缺失值。

4. 使用前一个或后一个有效值填充缺失值

# 使用前一个有效值填充缺失值
data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
# 使用前一个有效值填充缺失值
df['A'] = df['A'].ffill()
print(df)

5. 使用均值、中位数或众数填充缺失值

data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
# 使用列的均值填充缺失值
df_mean_filled = df.fillna(df.mean())
print(df_mean_filled)

# 使用列的中位数填充缺失值
df_median_filled = df.fillna(df.median())
print(df_median_filled)

# 使用列的众数填充缺失值
df_mode_filled = df.fillna(df.mode().iloc[0])
print(df_mode_filled)

注释: fillna(df.mean()), fillna(df.median()), 和 fillna(df.mode().iloc[0])分别使用列的均值、中位数和众数填充。

6. 替换缺失值为特定字符串或数值

data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
# 替换NaN为字符串"Missing"
df_replaced = df.replace(np.nan, "Missing")
print(df_replaced)

注释: replace(np.nan, "Missing")用于将NaN替换为指定的字符串或数值。

7. 根据条件填充缺失值

data = {'A': [12, np.nan, 4], 'B': [5, np.nan, np.nan, 8],'C': [5118]}
df = pd.DataFrame(data)
# 根据条件填充缺失值,例如如果A列缺失则用C列的值填充
df['A'] = df['A'].fillna(df['C'])
print(df)

以上是使用Pandas处理缺失值数据的常用7个方法。每种方法都有其适用的场景,可以根据具体的数据情况选择合适的方法进行处理。


Python学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章