《数据分析》课件——任务4.3 数据重塑.pptxVIP

  • 0
  • 0
  • 约1.6千字
  • 约 17页
  • 2026-03-11 发布于福建
  • 举报

《数据分析》课件——任务4.3 数据重塑.pptx

任务4.3数据重塑Python数据分析

学习目标及重难点学习目标:了解数据重塑的含义学习重点:数据重塑层次化索引轴向旋转

目录学习内容1.重塑层次化索引2.轴向旋转

01数据重塑层次化索引

1.数据重塑含义在数据处理时,有时需要对数据结构进行重排,称作重塑(Reshape)或轴向旋转(Pivot)。运用层次化索引可以为DataFrame的数据重排提供良好的一致性。常见的数据层次化结构有两种,如下图:在pandas中提供了实现重塑的两个函数:stack()和unstack()row101row223onetwo列索引行索引表格结构row1row2one0two1one2two3花括号结构

2.stack函数stack:将数据的列“旋转”为行语法格式为:DataFrame.stack(level=-1,dropna=True)level:接收int、str、list类型的数据,表示操作内层索引,默认值-1;若设为0,表示操作外层索引。dropna:接收布尔值,表示是否将旋转后的缺失值删除,若设为True,则表示自动过滤缺失值,设置为False则相反。函数返回值为DataFrame或Series。

2.stack函数现在有一个DataFrame类对象df,如果希望将它重塑为一个具有两层索引结构的对象result,也就是说将列索引转换成内层行索引,则重塑前后的效果如下图所示。第1层第2层

2.stack函数例如:将一个2行3列的数据表(如下左图)使用stack方法将列转为行,得到一个Series(如下右图):

3.unstack函数unstack()方法可以将数据的行索引转换为列索引level:默认为-1,表示操作内层索引,0表示操作外层索引。fill_value:若产生了缺失值,则可以设置这个参数用来替换NaN。DataFrame.unstack(level=-1,fill_value=None)

3.unstack函数对于一个层次化索引的Series,可以用unstack将其重排为一个DataFrame(接上一页的例子):

3.unstack函数如果在分组中找不到级别值,则unstack操作会引入缺失数据:stack默认会滤除缺失数据:

02轴向旋转数据

1.轴向旋转某件商品的价格在非活动期间为50元,而在活动期间商品的价格为30元,这就造成同一件商品在不同时间对应不同的价格。同一款商品的在活动前后的价格无法很直观地看出来。

1.轴向旋转我们可以将商品的名称作为列索引,出售日期作为行索引,价格作为表格中的数据,此时每一行展示了同一日期不同手机品牌的价格。通过表格可以直观地看出活动前后的价格浮动

2.Pivot函数在Pandas中pivot()方法提供了这样的功能,它会根据给定的行或列索引重新组织一个DataFrame对象Index(可选参数):用于创建新DataFrame对象的行索引。Columns(必选参数):用于创建新DataFrame对象的列索引。Values(可选参数):用于填充新DataFrame对象中的值。pivot(index=None,columns=None,values=None)

2.Pivot函数代码实例创建出来了一个6行4列的df对象,并且每一列的名称和值都是不一样的(图1)。在调用pivot()函数之后就可以来对这个数据进行整合(图2)。图1图2代码运行完成自后就会输出三列两行的结果,并且在第一列还是有两个索引。这是因为它将原本数据源之中列foo作为了新对象之中的索引,也就是用其作为行号,保留唯一值之后只有one、two两行了。而将bar列的值为列名,那么保留唯一值就会有ABC三列。而这个行列下的数据则是由baz列中得到的,因为没有重复值所以全部都保留了下来。

谢谢

文档评论(0)

1亿VIP精品文档

相关文档