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 28 Python
Python IDLE入门简介
Dec 08 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
python numpy数组中的复制知识解析
Feb 03 Python
如何基于windows实现python定时爬虫
May 01 Python
Python面向对象实现方法总结
Aug 12 Python
Python importlib模块重载使用方法详解
Oct 13 Python
利用python清除移动硬盘中的临时文件
Oct 28 Python
Python Socket多线程并发原理及实现
Dec 11 Python
详解python字符串驻留技术
May 21 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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
php常用字符串处理函数实例分析
2014/11/22 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python字符串切片操作知识详解
2016/03/28 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
解读! Python在人工智能中的作用
2017/11/14 Python
django的登录注册系统的示例代码
2018/05/14 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python字符串查找函数的用法详解
2019/07/08 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
工作个人的自我评价
2014/01/14 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
社区活动总结范文
2015/05/07 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android