Pandas(数据清洗)

在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。 这工作会占到分析师时间的80%或更多。

pandas和内置的Python标准库提供了一组高级的、灵活的、快速的工具,可以让你轻松地将数据规整为想要的格式。

处理缺失数据

检测缺失数据

《Pandas(数据清洗)》 检测

在统计应用中,NA数据可能是不存在的数据或者虽然存在,但是没有观察到(例如,数据采集中发生了问题)。当进行数据清洗以进行分析时,好直接对缺失数据进行分析,以判断数据采集的问题或缺失数据可能导致的偏差。

Python内置的None值在对象数组中也可以作为NA:

《Pandas(数据清洗)》 None

滤除缺失数据

《Pandas(数据清洗)》 滤除缺失

DataFrame对象,dropna默认丢弃任何含有缺失值的行

《Pandas(数据清洗)》 丢弃含有缺失值的行

传入how=‘all’将只丢弃全为NA的行

《Pandas(数据清洗)》 丢弃全为NA的行

将特殊值置为NA之后进行相关操作

《Pandas(数据清洗)》 根据非NA的个数决定是否删除

填充缺失数据

fillna方法是主要的函数。通过一个常数调用fillna就会将缺失值替换为那个常数值。

《Pandas(数据清洗)》 常数替换

通过一个字典调用fillna,就可以实现对不同的列填充不同的值。

《Pandas(数据清洗)》 字典参数,实现分列填值

fillna默认会返回新对象,但也可以对现有对象进行就地修改。

《Pandas(数据清洗)》 默认返回对象,也可以就地修改

对reindexing有效的那些插值方法也可用于fillna

《Pandas(数据清洗)》 插值方法

传入Series的平均值或中位数

《Pandas(数据清洗)》 传入平均值

数据转换

移除重复数据

《Pandas(数据清洗)》 重复数据

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行

《Pandas(数据清洗)》 判断是否是重复行

drop_duplicates方法,它会返回一个DataFrame,重复的数组会标为False

《Pandas(数据清洗)》 返回无重复行的数组

只希望根据k1列过滤重复项

《Pandas(数据清洗)》 指定列去重

duplicated和drop_duplicates默认保留的是第一个出现的值组合。传入keep=‘last’则保留最后一个

《Pandas(数据清洗)》 指定多列去重并选择保留值

利用函数或映射进行数据转换

根据数组、Series或DataFrame列中的值来实现转换工作

《Pandas(数据清洗)》 数据准备

添加一列表示该肉类食物来源的动物类型。我们先编写一个不同肉类到动物的映射

《Pandas(数据清洗)》 映射

使用Series的str.lower方法,将各个值转换为小写

《Pandas(数据清洗)》 完成映射

也可以传入一个能够完成全部这些工作的函数

《Pandas(数据清洗)》 一个函数搞定

替换值

《Pandas(数据清洗)》 数据准备

-999这个值可能是一个表示缺失数据的标记值。要将其替换为pandas能够理解的NA值

《Pandas(数据清洗)》 替换缺失数据

一次性替换多个值

《Pandas(数据清洗)》 替换多个缺失数据

让每个值有不同的替换值,可以传递一个替换列表

《Pandas(数据清洗)》 对应替换多个缺失数据

    原文作者:GHope
    原文地址: https://www.jianshu.com/p/8c42112d7f8f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞