对Pandas MultiIndex(多重索引)详解


Posted in Python onNovember 16, 2018

创建多重索引

In [16]: df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)

In [17]: df
Out[17]: 
first  bar     baz     foo     qux \
second  one  two  one  two  one  two  one 
A  0.895717 0.805244 -1.206412 2.565646 1.431256 1.340309 -1.170299 
B  0.410835 0.813850 0.132003 -0.827317 -0.076467 -1.187678 1.130127 
C  -1.413681 1.607920 1.024180 0.569605 0.875906 -2.211372 0.974466 

first    
second  two 
A  -0.226169 
B  -1.436737 
C  -2.006747

获得索引信息

get_level_values

In [23]: index.get_level_values(0)
Out[23]: Index(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], dtype='object', name='first')

In [24]: index.get_level_values('second')
Out[24]: Index(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'], dtype='object', name='second')

基本索引

In [25]: df['bar']
Out[25]: 
second  one  two
A  0.895717 0.805244
B  0.410835 0.813850
C  -1.413681 1.607920

In [26]: df['bar', 'one']
Out[26]: 
A 0.895717
B 0.410835
C -1.413681
Name: (bar, one), dtype: float64

In [27]: df['bar']['one']
Out[27]: 
A 0.895717
B 0.410835
C -1.413681
Name: one, dtype: float64

使用reindex对齐数据

数据准备

In [11]: s = pd.Series(np.random.randn(8), index=arrays)

In [12]: s
Out[12]: 
bar one -0.861849
  two -2.104569
baz one -0.494929
  two 1.071804
foo one 0.721555
  two -0.706771
qux one -1.039575
  two 0.271860
dtype: float64

s序列加(0~-2)索引的值,因为s[:-2]没有最后两个的索引,所以为NaN.s[::2]意思是步长为1.

In [34]: s + s[:-2]
Out[34]: 
bar one -1.723698
  two -4.209138
baz one -0.989859
  two 2.143608
foo one 1.443110
  two -1.413542
qux one   NaN
  two   NaN
dtype: float64

In [35]: s + s[::2]
Out[35]: 
bar one -1.723698
  two   NaN
baz one -0.989859
  two   NaN
foo one 1.443110
  two   NaN
qux one -2.079150
  two   NaN
dtype: float64

以上这篇对Pandas MultiIndex(多重索引)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python+Django在windows下的开发环境配置图解
Nov 11 Python
python中的sort方法使用详解
Jul 25 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
python读写json文件的简单实现
Apr 11 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
对Python信号处理模块signal详解
Jan 09 Python
Django框架视图函数设计示例
Jul 29 Python
python爬虫用mongodb的理由
Jul 28 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python的html标准库
Apr 29 Python
一百行python代码将图片转成字符画
Feb 19 #Python
Pandas GroupBy对象 索引与迭代方法
Nov 16 #Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 #Python
pandas 透视表中文字段排序方法
Nov 16 #Python
用Python实现数据的透视表的方法
Nov 16 #Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 #Python
python生成以及打开json、csv和txt文件的实例
Nov 16 #Python
You might like
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python抓取网页中链接的静态图片
2018/01/29 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python批量图片处理简单示例
2019/08/06 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
如何卸载python插件
2020/07/08 Python
如何编写python的daemon程序
2021/01/07 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
安全生产管理合理化建议书
2014/03/12 职场文书
道路施工安全责任书
2014/07/24 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
专项资金申请报告
2015/05/15 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android