Pandas之分层索引

import pandas as pd
import numpy as np

# 1、层级索引
s1 = pd.Series(np.random.randn(12),index=[['a','a','a','b','b','b','c','c','c','d','d','d'],[0,1,2,0,1,2,0,1,2,0,1,2]])
print(s1)

print(type(s1.index))  #<class 'pandas.core.indexes.multi.MultiIndex'>
print(s1.index)
'''
MultiIndex([('a', 0),
            ('a', 1),
            ('a', 2),
            ('b', 0),
            ('b', 1),
            ('b', 2),
            ('c', 0),
            ('c', 1),
            ('c', 2),
            ('d', 0),
            ('d', 1),
            ('d', 2)],
           )
'''

# 2、选取
# 外层选取
print(s1['b'])

#内层选取
print(s1[:,2])

#具体某个值
print(s1['a',0])

#3、交换
# 3.1 swaplevel() 交换内层和外层索引
# print(s1.swaplevel())
'''
0  a   -0.059948
1  a    1.676417
2  a    0.645701
0  b   -1.296001
1  b   -0.356783
2  b    1.740027
0  c    1.166927
1  c    1.351469
2  c   -0.693756
0  d    0.552620
1  d    0.557757
2  d    0.721529
dtype: float64
'''

# 3.2 sortlevel() 先对外层索引进行排序,再对内层索引进行排序 最后交换
print(s1.sortlevel())  #现在已经不用了,没有了 会报错

# 3.3 交换并排序分层
print(s1.swaplevel().sort_values())
'''
1  c   -1.419539
0  d   -0.837428
2  c   -0.818162
1  b   -0.413601
2  b   -0.410248
   a   -0.342093
0  a   -0.277028
1  a   -0.060458
0  b    0.011740
   c    0.048183
1  d    0.631287
2  d    1.391267
dtype: float64
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值