多语言展示
当前在线:711今日阅读:179今日分享:36

Series的层次化索引

Python是目前最流行最简单用途最广泛的编程语言,大数据时代最应该学习的一门编程语言。其中,数据分析的库pandas是Python最经典的库之一。现在我们看一下Series的层次化索引的例子。1pandas基础之索引、选取、过滤(Series)
工具/原料
1

python

2

anaconda,spyder

3

DataFrame,Series

方法/步骤
1

前提:加载numpy,pandas和Series,DataFrame。生成一个层次索引的Series,命名为s1,如图

2

使用s1.index可以查看MultiIndex索引的层次化索引;使用s1['c']查看外层是‘c’的数据;使用s1['b':'c']查看外层是‘b’和‘c’的数据(连续);如图

3

如果外层两个索引不连续,那么需要使用s1[['a','d']]或者s1.loc[['a','d']]即可取出外层索引为‘a’和‘d’的数据,如图所示

4

如果需要取出内层为‘2’的数据,那么使用s1[:,'2']即可,如图

5

层次化索引的重塑(类似excel的数据透视表)功能。s1.unstack(level=-1)和s1.unstack(level=0)分别是表示将内层和外层转化为列;unstack的逆运算是stack,具体如图

注意事项
1

层次化索引连续可以使用冒号(':'),不连续的要使用loc或者用中括号等

2

取出s1的内层索引为'2'的数据,使用s1[:,'2']

3

unstack中level=-1表示内层转换到列,level=0表示外层转换到列,其实还有一个fill_value参数用来填充缺失值的

4

Series.unstack()参数level可以取-1和0,而stack()参数level只能取-1,也就是说s1.unstack(level=0).stack()返回的并不是原s1

推荐信息