Pandas处理缺失值的3种方法

​处理数据框中的缺失值是数据分析过程中非常重要的一步。Pandas 提供了多种方法来处理缺失值,包括删除含有缺失值的行或列、填充缺失值以及插值等方法。

一、删除含有缺失值的行或列
适用场景:缺失值比例较低时(例如 <5%),可以直接删除。数据集较大且删除后不会显著影响数据分布。
1.删除含有任何缺失值的行

clean_data = data.dropna()  #删除包含任何缺失值的行

2.删除所有缺失值的列

cleaned_data = data.dropna(axis=1)  #删除包含任何缺失值的列
  • axis :用于指定操作的方向(行或列)。
    • 0(默认):对列操作
    • 1 :对行操作

3.按条件删除

cleaned_data = data.dropna(subset=['x', 'y'])  #只删除在 'x' 和 'y' 列中有缺失值的行
  • subset :一个列表,用于指定只考虑数据框中的某些列来判断是否包含缺失值。

二、填充缺失值
1.使用常量值填充

df_filled_fixed = df.fillna(0, inplace=True)  #使用0填充缺失值
  • inplace:用于控制是否直接修改原始数据结构。
    • True:直接在原始数据结构上进行修改,不会返回新的对象。
    • False(默认值):不会修改原始数据结构,而是返回一个新的对象,原始数据保持不变。

2.统计值填充
数据近似正态分布时,适合用均值或中位数填充。
分类变量适合用众数填充。
(1)均值填充

df_fill_mean = df.fillna(df.mean())  # 使用每列的均值填充

(2)中位数填充

df_fill_median = df.fillna(df.median())  # 使用每列的中位数填充

(3)众数填充

df_fill_mode = df.fillna(df.mode().iloc[0])  # 使用每列的众数填充

3.使用前向或后向填充
(1)前向填充

df_ffill = df.fillna(method='ffill', inplace=True)  #使用前一行的值填充

(2)后向填充

df_bfill = df.fillna(method='bfill', inplace=True)  #使用后一行的值填充

三、插值法填充
适用于时间序列数据或有序数据中缺失值的填补。

df_interpolated = df.interpolate(method='linear')  # 线性插值
  • method='nearest':最近邻插值
  • method='polynomial':多项式插值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值