对Pandas MultiIndex(多重索引)详解

yipeiwu_com5年前Python基础

创建多重索引

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设计】。

相关文章

利用scrapy将爬到的数据保存到mysql(防止重复)

利用scrapy将爬到的数据保存到mysql(防止重复)

前言 本文主要给大家介绍了关于scrapy爬到的数据保存到mysql(防止重复)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 1.环境建立  ...

widows下安装pycurl并利用pycurl请求https地址的方法

widows下安装pycurl并利用pycurl请求https地址的方法

步骤一:下载对应的CURL压缩包并在windows上配置好环境变量 进入CURL官网下载对应的windows压缩包。地址:点击打开链接 把下载好的压缩包解压到自己喜欢的一个目录下,我暂...

Cython 三分钟入门教程

作者:perrygeo译者:赖勇浩(http://laiyonghao.com/)原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Py...

用Python将Excel数据导入到SQL Server的例子

使用环境:Win10 x64 Python:3.6.4 SqlServer:2008R2     因为近期需要将excel导入到SQL Serve...

Django 全局的static和templates的使用详解

Django 全局的static和templates的使用详解

一、问题 首先我们在进行Django框架搭建的时候我们需要建立一个全局的变量,一是为了实现代码的复用,二是为了方便管理,如下图的样式 二、解决 1、修改setting里面的配置文件...