Datawhale Pandas研习社 第四次打卡记录
先上干货:

<>一、pandas数据变形函数总结

<>二、数据预处理之数据变形

<>为什么要进行数据的清洗与变形?

一般来说,无论人工还是传感器采集的数据,都或多或少存在一些错误或者瑕疵,可能有数据重复或者不准确,导致数据存在很多默认值、缺失值、异常值等,因此我们拿到的数据往往无法直接进行分析,一般要先进行数据探索和数据预处理等工作。从通常公认的经验来说,数据预处理的工作一般会占到整个数据分析项目的70%~80%,也就是说,做“数据分析”其实很大一部分时间是在做数据的处理,使“脏数据”变得“干净”、“整洁”,从无法分析的形态变成可以分析、建模、可视化的形态,所以熟练掌握数据清理与塑性是非常必要的。

<>什么是干净的数据?

既然数据清洗、变形是如此重要,我们的目的是让数据变得“干净”,听起来好像非常抽象。那究竟什么是“脏数据”?什么才是“干净”的数据呢?

“脏数据”其实没有明确的标准,只要不能满足个人分析的要求,这样的数据集都可以成为“脏”数据。每个数据集可能各有各的“脏”,但对于“干净、整洁”,大家是有统一标准的。
目前公认的“干净”可以总结为以下三点:
1、属性相同的变量自成一列。
2、单一观测自成一行。
3、单个属性值必须独立存在。
也就是说数据的形态应该是:每一行是一条观测,每一列是一个属性(或称变量)。

<>数据的形态

从形态上,数据大体上可以分成长数据与宽数据两种,一般来说,我们拿到手的数据大多是“宽数据”。

* 宽数据:一般同类或者不同类型变量并存。比如性别的“男”与“女”均作为变量。
* 长数据:同类型变量单独成列。

“宽数据”更符合人们日常对Excel格式数据的理解,而“长数据”对计算机来说更易进行识别、存储于计算。也就是说,人类直观上喜欢“宽数据”,而我们的计算机其实更喜欢“长数据”,所以很多时候我们需要做数据的变形,把“宽数据”变成计算机喜欢的“长数据”再喂给它。
需要注意的是,“干净”的数据与“长数据”、“宽数据”没有明确的对应关系,也就是说,“干净”的数据可宽可长。

<>数据变形的类型

既然数据主要是“长”、“宽”两种形态,那顾名思义,数据变形主要就是两种状态互相转化,主要可分为数据的“长转宽”或者“宽转长”两种。
从变形的具体用途来说:

* 宽转长:往往用于可视化等任务。
* 长转宽:一般来说用于制作统计表,将数据的原始信息和数量关系进行汇总、呈现等。
所以如果从数据变形的具体task来区分我们这章学习的函数,大致可以归纳为:

Python pandas
宽转长:melt,stack等。
长转宽:透视表函数(pivot,pivot_table,crosstab)、unstack、get_dummies等。

R语言中的reshape2或者tidyr包也有类似功能的函数,具体来说,reshape2包的melt和dcast组合,tidyr包中的gather和spread组合都可以进行数据变形,个人更喜欢tidyr,因为它是tidyverse系列组件的一员,可以很好地与其他包进行衔接。从函数功能上说:

R语言 tidyr / reshape2等
宽转长:melt、gather。
长转宽:dcast、spread。

参考文献:R数据科学实战工具详解与案例分析
Datawhale社区 JoufulPandas教程第四章——变形

技术
©2019-2020 Toolsou All rights reserved,
@Repository注解的作用vue vue-element-admin项目踩坑小结git拉取远程分支并切换到该分支非父子组件之间的三种传值办法SSM项目的excel文件上传并添加到数据库(精华)2020年7月30日 微信小程序 模块的使用Hack Bar 2.1.2 按F9没反应2年前出厂的小天才电话手表无法使用 联通:2G网已关闭org.postgresql.util.PSQLException 处理记录Python 读取Excel某一列|转存json