您好,登錄后才能下訂單哦!
下面創建一個Series, 在輸入索引Index時,輸入了由兩個子list組成的list,
第一個子list是外層索引,第二個list是內層索引。
示例代碼:
import pandas as pd
import numpy as np
ser_obj = 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(ser_obj)
運行結果:
a 0 0.099174
1 -0.310414
2 -0.558047
b 0 1.742445
1 1.152924
2 -0.725332
c 0 -0.150638
1 0.251660
2 0.063387
d 0 1.080605
1 0.567547
2 -0.154148
dtype: float64
MultiIndex索引對象
示例代碼:
print(type(ser_obj.index))
print(ser_obj.index)
運行結果:
<class 'pandas.indexes.multi.MultiIndex'>
MultiIndex(levels=[['a', 'b', 'c', 'd'], [0, 1, 2]],
labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])
選取子集
ser_obj['outer_label']
示例代碼:
# 外層選取
print(ser_obj['c'])
運行結果:
0 -1.362096
1 1.558091
2 -0.452313
dtype: float64
ser_obj[:, 'inner_label']
示例代碼:
# 內層選取
print(ser_obj[:, 2])
運行結果:
a 0.826662
b 0.015426
c -0.452313
d -0.051063
dtype: float64
交換分層順序
.swaplevel( )交換內層與外層索引。
示例代碼:
print(ser_obj.swaplevel())
運行結果:
0 a 0.099174
1 a -0.310414
2 a -0.558047
0 b 1.742445
1 b 1.152924
2 b -0.725332
0 c -0.150638
1 c 0.251660
2 c 0.063387
0 d 1.080605
1 d 0.567547
2 d -0.154148
dtype: float64
交換并排序分層
.sort_index() 先對外層索引進行排序,再對內層索引進行排序,默認是升序。
示例代碼:
# 交換并排序分層
print(ser_obj.swaplevel().sort_index())
運行結果:
0 a 0.099174
b 1.742445
c -0.150638
d 1.080605
1 a -0.310414
b 1.152924
c 0.251660
d 0.567547
2 a -0.558047
b -0.725332
c 0.063387
d -0.154148
dtype: float64
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。