私は(ここでは一例に関連:)以下のパンダを持って、私は両方のマルチインデックスにここにスライスした場合パンダマルチインデックス・スライスが
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例えば、時間= 0と最初のインデックスですべての行を得る?以下は動作しません:
# In [3]: s.loc[(0),:]
KeyError: 0
私はここでそれをどうしますか?
素晴らしいです。 ".xs"は現在動作していますが、現在私の実際のデータフレームで解決しようとしていますが、 "a"ではなくすべての列を選択/保持したいと考えています。コンマのみを残すと、結果は " UnsortedIndexError: 'マルチインデックススライスではインデックスが完全にlexsortされている必要があります。len(2)、lexsort depth(1)'" – Rockbar
はい、まずdf = df.sort_index()が必要です。 – jezrael
文書では、[ここ](http://pandas.pydata.org/pandas-docs/stable/advanced.html#sorting-a-multiindex) – jezrael