数据规整之连接,联合与重塑

这章可以在以后的数据分析案例中,慢慢的体会。但最终的目的就是为了组装自己想要的数据

数据规整之连接,联合与重塑

首先数据可能分布在多个文件或者数据库中,或以某种不易于分析的格式进行排列。而现在我们要做的就是如何连接,联合与重塑

分层索引

分层索引是pandas的重要特性,允许在一个轴向上拥有多个索引层级。分层索引提供了一种在更低维度的形式中处理更高维度数据的方式
image-20200723215507558

筛选数据子集

image-20200723220913394

DataFrame中分层索引

image-20200723221921025

重排序和层级排序

有时需要重新排列轴上的层级顺序,或者按照特定的层级对数据进行排序。使用swaplevel接收两个层级序号或者层级名称。返回一个层级变更的新对象,但是数据是不变的
image-20200723222834966

按层级进行汇总统计

DataFrame和Series有一个level选项。可以在某个特定的轴上面进行聚合

image-20200723223607440

使用DataFrame的列进行索引

image-20200723224502583

联合与合并数据集

  1. pandas.merge可以根据一个或者多个键进行连接。
  2. pandas.concat是对象在轴向上进行黏合或堆叠
  3. combine_first允许将重叠的数据拼接在一起。以使用一个对象中的值填充另一个对象中的缺失值

数据风格的连接

image-20200723230135407

左右连接以及outer并集

image-20200723230934131

注意事项

多对多连接是行的笛卡尔积,使用多个键进行合并时传入一个列名的列表即可,在处理重叠的列名的时候可以使用suffixes进行重新命名

根据索引合并

image-20200723232316630

沿轴向连接

一个是通过Numpy的concatenate函数,也可以使用pandas的concat函数

image-20200723234200939

联合重叠数据

可以理解为填补Series或者DataFrame的缺失值,使用Combine_first

image-20200723234742072

重塑和透视

多层索引在DataFrame中提供一种一致性的方式用于重排列数据。

  • statck简单的说就是转为低维度多层级的Series(堆叠) 也可以叫做列中的数据透视到行
  • unstack简单的说就转为层级感强烈的DataFrame(拆堆) 也可以叫做行中的数据透视到列

长变宽

image-20200724225834544

image-20200724225904151

image-20200724230400324

宽变长

pivot方法的反操作是pandas.melt,需要注意的是,需要配置key哪些列是分组指标
image-20200724232356680

image-20200724232422708