pandas unstack用法,pandas中stack的用法

  pandas unstack用法,pandas中stack的用法

  当您处理包含某种序列变量的数据集(如时间序列数据)时,通常需要对数据进行整形。Pandas提供了各种用于重塑数据帧的内置方法。其中stack()和unstack()最受欢迎。本文总结了使用这两种方法的七个技巧,有需要的可以参考一下。

  00-1010简介1。单层2。多层次:简单案例3。多级:缺少值4。多层:指定要堆叠的层5。多级:删除缺少的值6。Unstack 3360简单案例7。拆分:更多使用结论

  

目录

 

  Pandas提供了各种用于重塑数据帧的内置方法。其中,stack()和unstack()是两种最常用的重新组织列和行的方法:

  Stack():从列到行堆叠unstack():从行到列拆分。

  Stack()和unstack()看起来使用起来相当简单,但是您应该仍然知道一些加快数据分析的技巧。

  在这篇文章中,我将分享几个熊猫的小贴士:

  多级:简单情况多级:缺失值多级:指定要堆叠的级别多级:删除缺失值拆分:简单情况拆分:更多用法

  

介绍

 

  最简单的stack()可以应用于只有一列的DataFrame。它只是从列到行堆叠标签并输出一系列。

  df_single_level=pd数据帧(

  [[大部多云,10],[晴,12]],

  index=[伦敦,牛津],

  columns=[天气,风]

  )

  df_single_level.stack()

  

1.单层

 

  通常,我们会在具有多级列的数据帧上使用stack()。

  让我们创建一个数据框架。有许多方法可以创建具有多级列的数据框架。最简单的方法之一是创建一个MultiIndex对象MultiIndex.from_tuples(),并将结果传递给pd中的columns参数。DataFrame():

  multi_col_1=pd。MultiIndex.from_tuples(

  [(风,英里),(风,米/秒)]

  )

  df _多级_1=pd。数据帧(

  [[13, 5.5], [19, 8.5]],

  index=[伦敦,牛津],

  列=multi_col_1

  )

  通过调用stack(),它将获得列级别(mph,m/s)并将其堆叠在行轴上。

  df_multi_level_1.stack()

  #与相同

  df _ multi _ level _ 1 . stack(level=-1)

  df _多级_1.stack(-1)

  在后台,它根据参数级别运行操作。level参数默认为-1,它取最里面的层,并将其从列轴堆叠到行轴。

  

2.多层次:简单案例

 

  用多级列堆叠数据帧时,通常会出现缺失值。让我们创建另一个数据帧示例:

  multi_col_2=pd。MultiIndex.from_tuples(

  [(风,英里),(温度,摄氏度)]

  )

  df _多级_2=pd。数据帧(

  [[13, 8], [19, 6]],

  index=[L

  ondon, Oxford],

   columns=multi_col_2

  )

  df_multi_level_2.stack()

  

  与前面的示例 multi_col_1 在第一级中具有相同的值Wind不同,multi_col_2 具有 2 个不同的值Wind和Temperature。 现在,我们得到了缺失值,因为堆叠的 DataFrame 比原始 DataFrame 有更多的值,并且缺失值用 NaN 填充。

  

 

  

 

  

4. 多层次:规定要堆叠的层次

 

  stack() 中的第一个参数是 level,它控制堆叠的级别。 让我们创建一个具有 2 个不同级别的 MultiIndex:

  

multi_col_2 = pd.MultiIndex.from_tuples(

 

  我们可以传递一个数字来规定要堆叠的级别。 要规定要堆叠的多个级别,我们可以传递一个列表:

  

df_multi_level_2.stack(0)

 

  

 

  

 

  

5. 多层次:删除缺失值

 

  默认情况下,调用 stack() 时会删除所有值缺失的行,可以通过将 dropna 设置为 False 来控制此行为:

  

df_multi_level_3 = pd.DataFrame(

 

  

 

  

 

  

6. unstack: 简单案例

 

  同样,Pandas unstack() 也支持参数级别,默认为 -1,它将对最内层索引应用操作。

  

index = pd.MultiIndex.from_tuples([

 

  通过在具有 MultiIndex 的 Series 上调用 unstack(),它会将最内层的索引取消堆叠到列上。 要指定要取消堆叠的级别,我们可以传递级别编号:

  

s.unstack()

 

  

 

  

 

  

7. unstack:更多用法

 

  通常,我们会在更多级别上使用 unstack()。

  让我们看一个具有 3 个级别的示例:

  

index = pd.MultiIndex.from_tuples([

 

  

 

  通过调用 unstack(),它将最里面的索引解栈到列中。

  

 

  例如,我们可以使用方法链来运行另一个 unstack() 或传递一个列表

  

# Method chaining

 

  

 

  

 

  

 

  

结论

 

  在本文中,我们介绍了 7 个使用 Pandas 的 stack()和 unstack() 重塑 DataFrame 的用例,该方法本身非常易于使用,并且是在数据预处理中操纵数据的最受欢迎的方法之一。

  到此这篇关于详解Pandas中stack()和 unstack()的使用技巧的文章就介绍到这了,更多相关Pandas stack() unstack()内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

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