pandas DataFrame 缺失值处理(数据预处理)

pandas DataFrame 缺失值处理 (数据预处理)

创建DataFrame数据样例

import pandas as pd
import numpy as np 

df = pd.DataFrame(np.random.rand(3,3),index=[1,3,4,7,9],columns=['a','b','c'])
df = df.reindex(index = range(5))
df

输出结果如下:
在这里插入图片描述

查看各字段是否存在缺失值的几种方法

#查看df中各字段是否存在缺失值
print(df.isna().any())
print("------------")
print(df.isnull().any())
print("------------")
print(np.isnan(df).any())

三种方法输出结果都一样如下:
在这里插入图片描述
还有一种我更喜欢的方法: DataFrame 的 info() 方法:

#用info()方法查看非空值情况  (推荐)
df.info()

输出结果如下:
在这里插入图片描述
输出结果主要看框出来的两部分,从结果可以看出,DataFrame共有5条数据,a、b、c三个字段中的非空数据都只有三个,因此可以判断出每个字段都存在缺失值。

缺失值的处理方法

  • 方法一,用dropna() 方法直接丢弃含有缺失值的数据:
test = df.dropna()
test

在这里插入图片描述
可以看到缺失值含有缺失值的数据被直接丢弃了,在真实的处理任务中,如果缺失值较少,整体数据量又很大时,直接丢弃缺失值对整体的影响不大。

  • 方法二,填充法。可以用某些数值来填充缺失值,如指定用数值0填充,或者是更常用的用前后值填充、均值填充、众数填充等。

用前后值填充:

print(df.fillna(method='ffill'))#用前一个值填充
print(df.fillna(method='backfill'))#用后一个值填充

在这里插入图片描述
用均值填充:

d = pd.DataFrame(np.arange(9).reshape(3,3),index = [0,1,3])
d = d.reindex(index = range(5))
print(d)
print(d.fillna(d.mean()))#每列的均值填充

填充前:
在这里插入图片描述

填充后:
在这里插入图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值