对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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
Python基础知识_浅谈用户交互
May 31 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
python dict 相同key 合并value的实例
Jan 21 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
通过cmd进入python的步骤
Jun 16 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
Python 键盘事件详解
Nov 11 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 Python
Python闭包的定义和使用方法
Apr 11 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
详解PHP数组赋值方法
2015/11/07 PHP
微信红包随机生成算法php版
2016/07/21 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
python开发之字符串string操作方法实例详解
2015/11/12 Python
python中正则的使用指南
2016/12/04 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
python同步windows和linux文件
2019/08/29 Python
Python求凸包及多边形面积教程
2020/04/12 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
工程管理专业毕业生自荐信
2014/01/24 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
Linux安装Docker详细教程
2022/07/07 Servers