Pandas pivot,pandas中pivot_table自定义函数

  Pandas pivot,pandas中pivot_table自定义函数

  最近在做基于python的数据分析,引用了第三方数据分析库熊猫,所以下面这篇文章主要介绍熊猫应用实例pivot函数的相关信息。通过图文非常详细的介绍,有需要的朋友可以参考一下。

  00-1010 1、主元函数的定义2、主元函数的描述3、主元函数的参数4、主元函数的例子5、主元函数在实际工作中的案例总结

  

目录

 

  pivot(索引=无,列=无,值=无)- DataFrame

  

1、pivot函数的定义

 

  用给定的索引和列值重新生成DataFrame对象。

  根据列值形成数据(生成一个“透视表”表)。使用指定索引/列中的唯一值来构成结果数据框的轴。此函数不支持数据聚合,多个值将导致列中有多个索引。

  

2、pivot函数的说明

 

  Index:指定一行作为生成的DataFrame对象的索引。如果为空,则默认为原始索引。

  列:指定列的值作为列名,并且必须传递该值。

  Values:指定一列作为生成的DataFrame对象的值。可以为空。

  

3、pivo函数的参数

 

  df=pd。DataFrame({foo: [一,一,二,二,二],

  bar: [A , B , C , A , B , C],

  巴兹: [1,2,3,4,5,6],

  zoo: [x , y , z , q , w , t]})

  #指定foo的值是新数据帧的索引,bar的值是列,数据帧中对应的值是baz。

  df.pivot(index=foo ,columns=bar ,values=baz )

  #未指定值,列名的最外层保留原始列。如下图,baz和zoo是原始dataframe中的列名,新指定的列名栏在内层(暂时)。

  df.pivot(index=foo ,columns=bar )

  #可以通过索引检索指定的列数据。

  df.pivot(index=foo ,columns=bar)[baz]

  #可以指定多个值

  df.pivot(index=foo ,columns=bar ,values=[baz , zoo])

  #指定多列

  df.pivot(index=foo ,columns=[bar , baz],values=[zoo])

  #指定多个索引

  df.pivot(index=[foo , bar],columns=baz ,values=zoo )

  #指定多个索引以通过索引名称获取一个索引的数据。

  df.pivot(index=[foo , bar],columns=baz ,values=zoo )。loc[一,]

  #这两行代码运行时会出错。

  #错误提示:值错误:索引包含重复条目,无法整形

  #这意味着两列bar=A的指定索引之一冲突。

  df=pd。DataFrame({foo: [一,一,二,二],

  bar: [A , A , B , C],

  巴兹: [1,2,3,4]})

  df.pivot(index=foo ,columns=bar ,values=baz )

  

4、pivot函数实例

 

  现在我们要展示上图中不同代码之间的相关性,以及2020年11月16日到2020年11月18日三天内num序列的个数。

  首先dataframe对象可以直接调用函数corr()来计算不同列之间的相关性,所以现在需要将原来的dataframe对象转换成以code为列,date为索引,num为值的dataframe。

  第一个笨方法是loop,不仅代码量大,而且数据量大的时候很费时间。不推荐。

  grouped=df.groupby(by=[code])

  df_num=pd。数据帧()

  对于“名称”,分组:中的分组

  d=pd。Series(data=group[num]。值,name=name)

  df_num=pd.concat([df_num,d],axis=1)

  df_close

  第二种方法是使用pivot函数,一行代码就可以解决,运行速度很快。

  df_num=df.pivot(索引=日期,列=代码,值=数字)

  当所需形式的dataframe生成后,可以直接调用corr()函数直接找到代码之间的关联。

  #计算列之间的相关性

  df_num.corr()

  

5、pivot函数在实际工作中解决的案例

 

  关于熊猫应用实例的pivot功能,本文到此结束。有关pandaspivot函数的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: