使用Pandas进行数据清洗

数据清洗的目的是修正异常值,以更好地进行运算和观察结果。通过Pandas对序列或数据帧的清洗分为两个步骤:异常检测和数据修正。

1.异常检测
Pandas中的空值用‘NaN’表示,可以通过调用isnullnotnull来检测序列对象和数据帧对象是否为异常值。

import pandas as pd

dic = {'name': ['Tom', 'Tony', 'Jack'], 'age': [16, 17, 18], 'class': [1, None, None]}
df = pd.DataFrame(dic)
df.isnull()

在这里插入图片描述

2.数据修正
数据检测完毕之后,需要对数据进行修正。

(1)填充值:将序列或者数据帧中的异常值“NaN”使用其他数据进行填充。

import pandas as pd

dic = {'name': ['Tom', 'Tony', 'Jack'], 'age': [16, 17, 18], 'class': [1, None, None]}
df = pd.DataFrame(dic)
df.fillna(0)

在这里插入图片描述

(2)替换值:对于一些明显出错的信息,如下列age列中的‘117’,‘118’就可以使用replace进行替换。

import pandas as pd

dic = {'name': ['Tom', 'Tony', 'Jack'], 'age': [16, 117, 118], 'class': [1, 1, 1]}
df = pd.DataFrame(dic)
df.replace({117:17, 118:18})

在这里插入图片描述

(3)删除值:删除异常值的同时会删除对应的数据行,可以使用dropna方法进行清除异常数据。
dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
参数

  • axis:默认为0,删除包含缺失值的行。若设置为1,删除包含缺失值的列(不建议这样做,因为可能删除一个特征)。
  • how:默认值any,如果存在NaN值,就删除该行或该列。若设置为all,当所有值都是NaN值,才删除该行或该列。
  • thresh:表示有效数据量的最小要求,如thresh=1,该行或该列至少有一个不是NaN值时会将其保留。
  • subset:在特定的字集中寻找NaN值。
  • inplace:表示是否在原数据上操作,如果设为True,则表示直接修改原数据;如果设为False,则表示修改原数据的副本,返回新数据。
import pandas as pd

dic = {'name': ['Tom', 'Tony', 'Jack'], 'age': [16, 17, 18], 'class': [1, None, None]}
df = pd.DataFrame(dic)

# 当thresh设置为2时,将不会修改任何数据
df.dropna(axis=0, thresh=3)

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值