pandas入门-层次化索引

本文是对pandas的层次化索引的一个回顾性总结。

 

 

multiIndex

层次化索引(hierarchical indexing)它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低维度形式处理高维度数据。
    例子

data = Series(np.random.randn(10),  index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'd', 'd'], [1, 2, 3, 1, 2, 3, 1, 2, 2, 3]]) # 这里面即有两级
print(data)
print(data.index) # 可以看到为multi.index有两级,levels是外层的,labels是里层的

 输出

a  1    0.274992
    2    0.228913
    3    1.352917
b  1    0.886429
    2   -2.001637
    3   -0.371843
c  1    1.669025
    2   -0.438570
d  2   -0.539741
    3    0.476985
dtype: float64
MultiIndex(levels=[[u'a', u'b', u'c', u'd'], [1, 2, 3]],
           labels=[[0, 0, 0, 1, 1, 1, 2, 2, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 1, 2]])
注意 :data[:,2]  # 第一个值为第一级索引(此为:表示全部),第二个表示第二级索引(此为表示索引值都为2的),而并不是值列2
输出
 a   -1.860761
b   -1.265934
c    0.332883
d   -2.359419
dtype: float64

unstack  

层次化索引在数据重塑和基于分组的操作(如透视表生成)中扮演着重要的角色。例如,可以通过unstack方法将这段数据重新安排到一个DataFrame中: 例子
        print(data.unstack()) # 通过unstack将上面含有多级索引的Series data 转换成一个DataFrame中去。
 输出
          1              2             3
a -1.541996 -0.970736 -1.307030
b  0.286350  0.377984 -0.753887
c  0.331286  1.349742       NaN
d       NaN  0.069877  0.246674
                    

stack  

unstack的逆运算是stack:
    例子
        data.unstack().stack() #stack方法将一个DataFrame转换为一个多级索引的Series,为unstack的逆运算
 输出
a  1    0.246674
   2   -0.011862
   3    1.004812
b  1    1.327195
   2   -0.919262
   3   -1.549106
c  1    0.022185
   2    0.758363
d  2   -0.660524
   3    0.862580
dtype: float64

根据级别进行汇总案例

这个参见
    https://wizardforcel.gitbooks.io/pyda-2e/content/8.html
    主要是在里面指定 level的值
        如frame.sum(level='key2')

参考与鸣谢: 

《利用python进行数据分析》

https://wizardforcel.gitbooks.io/pyda-2e/content/8.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值