내가 (여기 예제 관련 :) 다음과 같은 팬더가 나는 두 multiindex 여기에 슬라이스 경우팬더 다중 인덱스 조각
import numpy as np
import pandas as pd
variable = np.repeat(['a','b','c'], [5,5,5])
time = [0,1,5,10,20,0,1,5,10,20,0,1,5,10,20]
arra = [variable, time]
index=pd.MultiIndex.from_arrays(arra, names=("variable", "time"))
s = pd.Series(
np.random.randn(len(sequence)),
index=index
)
출력
# In [1]: s
variable time
a 0 -1.284692
1 -0.313895
5 -0.980222
10 -1.452306
20 -0.423921
b 0 0.248625
1 0.183721
5 -0.733377
10 1.562653
20 -1.092559
c 0 0.061172
1 0.133960
5 0.765271
10 -0.648834
20 0.147158
dtype: float64
것
# In [2]: s.loc[("a",0),:]
variable time
a 0 1.583589
1 -1.081401
5 -0.497904
10 0.352880
20 -0.179062
dtype: float64
하지만 보조 인덱스 인 "tim e "로 표시한다. 시간 = 0 및 첫 번째 인덱스와 모든 행을 얻을? 다음은 작동하지 않습니다.
# In [3]: s.loc[(0),:]
KeyError: 0
어떻게하면됩니까?
우수. ".xs"는 현재 작동하지만 현재 실제 데이터 프레임으로 솔루션을 시도하고 있지만 "a"대신 모든 열을 선택/유지하려고합니다. 쉼표 만 남기면 " UnsortedIndexError : 'MultiIndex Slicing은 인덱스가 완전히 lexsorted tuple이어야합니다. len (2), lexsort depth (1)'" – Rockbar
네, 먼저 df = df.sort_index()가 필요합니다. – jezrael
문서에서 [여기] (http://pandas.pydata.org/pandas-docs/stable/advanced.html#sorting-a-multiindex) – jezrael