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中__init__和__new__的区别详解
Jul 09 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python可变参数用法实例分析
Apr 02 Python
轻松理解Python 中的 descriptor
Sep 15 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
10个Python面试常问的问题(小结)
Nov 20 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
python模块如何查看
Jun 16 Python
基于python实现操作redis及消息队列
Aug 27 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
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
基于node实现websocket协议
2016/04/25 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
法制教育主题班会
2015/08/13 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫