python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

 更新时间:2022年04月06日 09:56:01   作者:侯小啾  
这篇文章主要给大家介绍了关于python DataFrame中stack()方法、unstack()方法和pivot()方法的相关资料,pandas中这三种方法都是用来对表格进行重排的,其中stack()是unstack()的逆操作,需要的朋友可以参考下

1.stack()

stack()用于将列索引转换为最内层的行索引,这样叙述比较抽象,看示例就容易理解啦:

准备一组数据,给其设置双索引。

import pandas as pd
data = [['A类', 'a1', 123, 224, 254], ['A类', 'a2', 234, 135, 444], ['A类', 'a3', 345, 241, 324],
        ['B类', 'b1', 112, 412, 466], ['B类', 'b2', 224, 235, 345], ['B类', 'b3', 369, 214, 352],
        ['C类', 'c1', 236, 251, 485], ['C类', 'c2', 378, 216, 515], ['C类', 'c3', 135, 421, 312],
        ['D类', 'd1', 306, 325, 496], ['D类', 'd2', 147, 235, 524], ['D类', 'd3', 520, 222, 267]]
df = pd.DataFrame(data=data, columns=['类别', '编号', 'A指标', 'B指标', 'C指标'])
df = df.set_index(['类别', '编号'])
print(df)

df = df.stack()
print(df)

如图,成功将索引列之外的 A指标,B指标,C指标三列放在了同一列。

此时的df,不再是一个DataFrame,而变为了一个Series对象。:

print(type(df))

该Series的index列不同于原DataFrame的index列,而是在原DataFrame的index列的基础上,又增加了从右边合并过来的部分:

print(df.index)

此时Values为:

print(df.values)

2. unstack()

unstack是stack的逆向操作。

在上述示例的代码的基础上,对上边的df继续调用unstack()方法:

df1 = df.unstack()
print(df1)

可以看到unstack变回了原来的样子。

3. pivot()

这里对于上边例子中的数据稍作调整:

不设置多重索引

import pandas as pd
data = [['A类', '1', 123, 224, 254], ['A类', '2', 234, 135, 444], ['A类', '3', 345, 241, 324],
        ['B类', '1', 112, 412, 466], ['B类', '2', 224, 235, 345], ['B类', '3', 369, 214, 352],
        ['C类', '1', 236, 251, 485], ['C类', '2', 378, 216, 515], ['C类', '3', 135, 421, 312],
        ['D类', '1', 306, 325, 496], ['D类', '2', 147, 235, 524], ['D类', '3', 520, 222, 267]]
df = pd.DataFrame(data=data, columns=['类别', '编号', 'A指标', 'B指标', 'C指标'])
print(df)

df2 = df.pivot(index='编号', columns='类别', values='A指标')
print(df2)

index和columns分别指设定那一列的值为index,设置那一列的值为columns。values指表格要体现的指标。

df3 = df.pivot(index='类别', columns='编号', values='A指标')
print(df3)

总结

到此这篇关于python DataFrame中stack()方法、unstack()方法和pivot()方法的文章就介绍到这了,更多相关DataFrame stack()、unstack()和pivot()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pytorch反向求导更新网络参数的方法

    Pytorch反向求导更新网络参数的方法

    今天小编就为大家分享一篇Pytorch反向求导更新网络参数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python Pytorch深度学习之数据加载和处理

    Python Pytorch深度学习之数据加载和处理

    今天小编就为大家分享一篇Pytorch 数据加载与数据预处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-10-10
  • python标准库sys和OS的函数使用方法与实例详解

    python标准库sys和OS的函数使用方法与实例详解

    这篇文章主要介绍了python标准库sys和OS的函数使用方法与实例详解,需要的朋友可以参考下
    2020-02-02
  • 浅谈Python中的数据类型

    浅谈Python中的数据类型

    Python很重要的的那几个数据类型:字符串,列表,字典,元组,经常有网友问他们之间重要的区别的是什么?能否举几个例子来说明下!下嘛我们就来探讨下。
    2015-05-05
  • 利用插件和python实现Excel转json的两种办法

    利用插件和python实现Excel转json的两种办法

    转换Excel表格到JSON格式有很多方法,下面这篇文章主要给大家介绍了关于利用插件和python实现Excel转json的两种办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Python中Unittest框架的具体使用

    Python中Unittest框架的具体使用

    这篇文章主要介绍了Python中Unittest框架的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python字典生成式、集合生成式、生成器用法实例分析

    Python字典生成式、集合生成式、生成器用法实例分析

    这篇文章主要介绍了Python字典生成式、集合生成式、生成器用法,结合实例形式分析了Python字典生成式、集合生成式、生成器相关原理、使用技巧与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • Python对列表的操作知识点详解

    Python对列表的操作知识点详解

    在本篇文章里小编给大家整理了关于Python对列表的操作知识点总结以及实例代码运用,需要的朋友们跟着学习下。
    2019-08-08
  • python基础字符串str详解

    python基础字符串str详解

    大家好,本篇文章主要讲的是python基础字符串str详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Django request.META.get()获取不到header头的原因分析

    Django request.META.get()获取不到header头的原因分析

    这篇文章主要介绍了Django request.META.get()获取不到header头的原因分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论