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用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
Python文件读写常见用法总结
Feb 22 Python
python爬虫之自制英汉字典
Jun 24 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
python实现超市商品销售管理系统
Oct 25 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
python与pycharm有何区别
Jul 01 Python
Python  word实现读取及导出代码解析
Jul 09 Python
python tqdm实现进度条的示例代码
Nov 10 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
二进制交叉权限微型php类分享
2014/02/07 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
python 制作简单的音乐播放器
2020/11/25 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
计算机应届毕业生自荐信范文
2014/02/23 职场文书
开学季活动策划方案
2014/02/28 职场文书
节约电力资源的建议书
2014/03/12 职场文书
检举信的格式及范文
2014/04/04 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
开天辟地观后感
2015/06/09 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书