数据清洗与准备 (数据分析)

目录

第7章 数据清洗与准备

7.1 处理缺失值

7.1.1 过滤缺失值

7.1.2 补全缺失值

7.2 数据转换

7.2.1 删除重复值

7.2.2 使用map函数或映射进行数据转换

7.2.3 替代值

7.2.4 重命名轴索引

7.2.5 离散化和分箱

7.2.6 检测和过滤异常值

7.2.7 置换和随机抽样

7.2.8 计算指标/虚拟变量

7.3 字符串操作

7.3.1 字符串对象方法

7.3.2 正则表达式


第7章 数据清洗与准备

7.1 处理缺失值

对于数值型数据,pandas使用浮点值NaN(Not a Number来表示缺失值)。我们称NaN为容易检测到的标识值:

在pandas中,我们采用了R语言中的编程惯例,将缺失值成为NA,意思是not available(不可用)。在统计学应用中,NA数据可以是不存在的数据或者是存在但不可观察的数据(例如在数据收集过程中出现了问题)。当清洗数据用于分析时,对缺失数据本身进行分析以确定数据收集问题或数据丢失导致的数据偏差通常很重要。

Python内建的None值在对象数组中也被当作NA处理:

处理缺失值相关函数列表:

7.1.1 过滤缺失值

可以使用pandas.isnull和布尔值索引手动地过滤缺失值,但dropna在过滤缺失值时是非常有用的。在Series上使用dropna,它会返回Series中所有的非空数据及其索引值:

等价处理方式:

处理DataFrame对象时,事情会稍微更复杂一点。你可能想要删除全部为NA或包含有NA的行或列。dropna默认情况下会删除包含缺失值的行:

传入how='all’时,将删除所有值均为NA的行:

如果要用同样的方式去删除列,传入参数axis=1:

过滤DataFrame的行的相关方法往往涉及时间序列数据。假设你只想保留包含一定数量的观察值的行。你可以用thresh参数来表示:

7.1.2 补全缺失值

大多数情况下,主要使用fillna方法来补全缺失值。调用fillna时,可以使用一个常数来替代缺失值:

在调用fillna时使用字典,你可以为不同列设定不同的填充值:

fillna返回的是一个新的对象,但你也可以修改已经存在的对象:

用于重建索引的相同的插值方法也可以用于fillna:

可以将Series的平均值或中位数用于填充缺失值:

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值