📜  如何处理数据集中的缺失值 - Python (1)

📅  最后修改于: 2023-12-03 14:53:00.018000             🧑  作者: Mango

如何处理数据集中的缺失值 - Python

在处理数据时,经常会遇到数据集中存在缺失值的情况。缺失值会对数据的分析和应用造成不良影响,因此需要对其进行处理。

本文将介绍几种常用的处理缺失值的方法,并使用 Python 代码实现。

1. 删除缺失值

最简单的方法是直接将含有缺失值的行或列删除。这种方法适用于缺失值较少且对结果影响不大的情况。

删除行的方式有两种:

df.dropna(axis=0, inplace=True)    # 删除含有缺失值的行
df = df.dropna(axis=0)             # 含有缺失值的行被删除后,重新赋值给 df

删除列的方式有两种:

df.dropna(axis=1, inplace=True)    # 删除含有缺失值的列
df = df.dropna(axis=1)             # 含有缺失值的列被删除后,重新赋值给 df
2. 填充缺失值

对于缺失值较少且对结果影响较大的情况,可以对缺失值进行填充。

填充方式有多种,常用的方式是使用均值、中位数、众数或上一个/下一个非缺失值进行填充。

使用均值、中位数、众数进行填充:

# 使用均值/中位数/众数填充整个数据集的缺失值
df.fillna(df.mean(), inplace=True)    # 使用均值填充所有缺失值,inplace=True 表示修改原始数据
df.fillna(df.median(), inplace=True)  # 使用中位数填充所有缺失值
df.fillna(df.mode().iloc[0], inplace=True)  # 使用众数填充所有缺失值,通过 .iloc[0] 获取众数值

使用上一个/下一个非缺失值进行填充:

df.fillna(method='ffill', inplace=True)    # 使用上一个非缺失值填充缺失值,inplace=True 表示修改原始数据
df.fillna(method='bfill', inplace=True)    # 使用下一个非缺失值填充缺失值
3. 对缺失值进行插值

对于连续型数据,可以对缺失值进行插值。

插值方式有多种,如线性插值、样条插值、多项式插值等。这里以线性插值为例:

df.interpolate(method='linear', inplace=True)    # 使用线性插值填充缺失值,inplace=True 表示修改原始数据

以上便是处理数据集中缺失值的方法和代码,根据具体情况选择相应的处理方式即可。