数据规整化——数据转换

数据转换

  • 1. 去除重复数据
    • 判断数据是否重复——duplicated方法
    • 去除重复项——drop_duplicates方法
      • 1)基本使用
      • 2)subset参数
      • 3)keep参数
  • 2. 将映射用于数据转换——series对象map方法
  • 3. 替换值——replace方法
    • 1)一个值替换为另一个值
    • 2)多个值替换为一个值
    • 3)一次性替换多个值
      • 列表形式
      • 字典形式
  • 4. 索引重命名
    • index对象的map方法(原数据上改动)
    • index对象rename方法(保证原数据不变)
      • 1)方法及参数解读
      • 2)基本使用
  • 5. 离散化和面元划分
    • cut方法
      • 1)参数说明
      • 2)bins参数
      • 3)label参数
    • qcut方法
      • 1)参数说明
      • 2)q参数
  • 6. 异常值处理
  • 7. 排列和随机采样
  • 8. 计算指标/哑变量——get_dummpies方法
    • 离散变量
    • 连续变量

1. 去除重复数据

首先创建一个含有重复项的DataFrame,
数据规整化——数据转换_第1张图片

判断数据是否重复——duplicated方法

判断是否为重复项的方法是duplicated方法,
数据规整化——数据转换_第2张图片

去除重复项——drop_duplicates方法

1)基本使用

官方文档中drop_duplicates方法的定义,
在这里插入图片描述
数据规整化——数据转换_第3张图片

2)subset参数

默认是全部列进行去重,也可以使用字符串或者列表指定对某一列或者某几列进行去重。

3)keep参数

依据官方文档,keep参数有三个可选项,
数据规整化——数据转换_第4张图片

2. 将映射用于数据转换——series对象map方法

pandas中的数据对象可以使用map方法
在这里插入图片描述
数据规整化——数据转换_第5张图片
现在要在这一基础上添加一列,这一列用于记录food给哪种动物吃,
数据规整化——数据转换_第6张图片
数据规整化——数据转换_第7张图片

3. 替换值——replace方法

除了使用fillna方法替换缺失值,还可以使用 replace方法的替换效果更好,

1)一个值替换为另一个值

数据规整化——数据转换_第8张图片
数据规整化——数据转换_第9张图片

2)多个值替换为一个值

只需要将要被替换的值以Python列表的形式传入函数即可,
数据规整化——数据转换_第10张图片

3)一次性替换多个值

列表形式

数据规整化——数据转换_第11张图片

字典形式

数据规整化——数据转换_第12张图片

4. 索引重命名

index对象的map方法(原数据上改动)

index对象与Series对象一样可以使用map方法对其进行操作,
在这里插入图片描述
无论是Series还是Dataframe的索引对象都是可以修改的,
在这里插入图片描述
数据规整化——数据转换_第13张图片

index对象rename方法(保证原数据不变)

1)方法及参数解读

在这里插入图片描述
DataFrame的操作相比Series更复杂,因为包含行索引和列索引,
在这里插入图片描述
参数说明,
数据规整化——数据转换_第14张图片

2)基本使用

index和column参数
对DataFrame的列索引进行rename操作,columns参数传入作用到列索引上的方法;而对行索引的rename操作,index参数传入作用到行索引上的方法,
在这里插入图片描述
在这里插入图片描述
rename方法可以通过index和columns参数对指定的索引和列名进行修改
数据规整化——数据转换_第15张图片

5. 离散化和面元划分

cut方法

离散化、面元化是将连续的数据变成离散数据,比如说分割为不同的区间,使用的是pandas的cut方法

1)参数说明

在这里插入图片描述
数据规整化——数据转换_第16张图片

2)bins参数

在这里插入图片描述
将ages中的年龄分入不同的bins中,
bins参数是一个列表,即人为指定一个区间,
数据规整化——数据转换_第17张图片
bins参数是一个整数,此时会将整个值的区间进行等分,
官方文档提供的cut方法使用,
在这里插入图片描述

3)label参数

在这里插入图片描述
需要注意的是cut方法返回的是一个Categories对象,该对象有两个属性,一个是labels属性,另一个是levels属性,再有就是常常使用pandas的 value_counts方法,对其进行操作,
数据规整化——数据转换_第18张图片
数据规整化——数据转换_第19张图片

qcut方法

1)参数说明

在这里插入图片描述
数据规整化——数据转换_第20张图片

2)q参数

q参数可以是数值也可以是四分位数的数组,
数据规整化——数据转换_第21张图片
qcut方法也支持自定义分位数,
数据规整化——数据转换_第22张图片
上方的代码传入的序列是自定义的分位数值。

6. 异常值处理

异常值,也叫孤立点或离群值,其过滤和变换很大程度上是数组运算。
在这里插入图片描述
数据规整化——数据转换_第23张图片
取出某列中绝对值大于某个值的数,
数据规整化——数据转换_第24张图片
取出列索引为3的列中绝对值大于3的数。

含有大于某个值的所有的行,
数据规整化——数据转换_第25张图片
所有的存在绝对值大于3的数的行。

7. 排列和随机采样

使用numpy的random模块permutation方法可以实现对Series和Dataframe的重排序,且这一重排序是随机的。

回顾permutation方法的使用,
在这里插入图片描述
在此基础上将permutation方法运用在Dataframe上,
数据规整化——数据转换_第26张图片
返回结果的类型是一个 numpy数组,permutation方法只是在 axis=0,即行索引个维度上进行重排序。

8. 计算指标/哑变量——get_dummpies方法

在统计建模和机器学习中常常将分类变量转化为哑变量,使用的是pandas的 get_dummpies方法
在这里插入图片描述
这个方法尤其是在分类问题时很重要,

离散变量

对于离散特征的编码分为两种情况:

1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码
2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}

使用pandas可以很方便的对离散型特征进行one-hot编码
数据规整化——数据转换_第27张图片
数据规整化——数据转换_第28张图片

连续变量

对于连续型变量而言,可以使用 get_dummpies方法与 cut方法的结合使用将其转换为哑变量,
数据规整化——数据转换_第29张图片

你可能感兴趣的:(Pandas)