您当前的位置: 首页 >  pandas

Dream丶Killer

暂无认证

  • 0浏览

    0关注

    188博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

使用Pandas进行数据清洗

Dream丶Killer 发布时间:2021-03-06 20:04:15 ,浏览量:0

数据清洗的目的是修正异常值,以更好地进行运算和观察结果。通过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)

在这里插入图片描述

关注
打赏
1655344294
查看更多评论
立即登录/注册

微信扫码登录

0.1293s