Pandas 重塑(stack)和轴向旋转(pivot)的实现


Posted in Python onJuly 22, 2019
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

一、重塑

  • stack:将数据的列索引旋转为行索引
  • unstack:将数据的行索引旋转为列索引
df = DataFrame({'水果':['苹果','梨','草莓'],
        '数量':[3,4,5],
        '价格':[4,5,6]})
print(df)

   价格  数量  水果
0   4   3  苹果
1   5   4   梨
2   6   5  草莓

1.stack()

stack_df = df.stack()
print(stack_df)

0  价格     4
   数量     3
   水果    苹果
1  价格     5
   数量     4
   水果     梨
2  价格     6
   数量     5
   水果    草莓

dtype: object

2.unstack()

print(stack_df.unstack())

  价格 数量  水果
0  4  3  苹果
1  5  4   梨
2  6  5  草莓

3.通过level参数指定旋转轴的层次(默认level=-1)

print(stack_df.unstack(level=0))

     0  1   2
价格   4  5   6
数量   3  4   5
水果  苹果  梨  草莓

二、轴向旋转(pivot)

pivot(index,columns,values):将index指定为行索引,columns是列索引,values则是DataFrame中的值

df = DataFrame({'水果种类':['苹果','苹果','梨','梨','草莓','草莓'],
        '信息':['价格','数量','价格','数量','价格','数量'],
        '值':[4,3,5,4,6,5]})
print(df)

   信息  值 水果种类
0  价格  4   苹果
1  数量  3   苹果
2  价格  5    梨
3  数量  4    梨
4  价格  6   草莓
5  数量  5   草莓

将水果种类作为行索引,将信息作为列索引

print(df.pivot('水果种类','信息','值'))

信息    价格  数量
水果种类       
梨      5   4
苹果     4   3
草莓     6   5

pivot可以用set_index和unstack等价的实现

print(df.set_index(['水果种类','信息']).unstack())

      值  
信息   价格 数量
水果种类     
梨     5  4
苹果    4  3
草莓    6  5

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python查看多台服务器进程的脚本分享
Jun 11 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
Python中的random()方法的使用介绍
May 15 Python
详解python的webrtc库实现语音端点检测
May 31 Python
基于python OpenCV实现动态人脸检测
May 25 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
关于python类SortedList详解
Sep 04 Python
Pandas透视表(pivot_table)详解
Jul 22 #Python
django认证系统 Authentication使用详解
Jul 22 #Python
django Admin文档生成器使用详解
Jul 22 #Python
django表单的Widgets使用详解
Jul 22 #Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 #Python
超简单的Python HTTP服务
Jul 22 #Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 #Python
You might like
消息持续发送的完整例子
2006/10/09 PHP
探讨如何把session存入数据库
2013/06/07 PHP
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
Django 前后台的数据传递的方法
2017/08/08 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
气象学专业个人求职信
2014/04/22 职场文书
宣传活动总结范文
2014/07/01 职场文书
励志演讲稿200字
2014/08/21 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
酒会开场白大全
2015/06/01 职场文书
李强感恩观后感
2015/06/17 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python