Benim yaklaşımım
df.sort_index(level=[0, 1], ascending=[1, 0], inplace=True)
df.loc[pd.IndexSlice[2002, :10], :]
oldu ama ben (örn ascending = [0, 0]
) sıralama farklı türevlerini denedik
KeyError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)'
olsun, ama hepsi hata çeşit sonuçlandı.
Yalnızca xth
satırını isteseydim, sıralamadan sonra df.groupby(level=[0]).nth(x)
yapabilirdim, ancak bir dizi satır istediğim için, bu oldukça verimli değil.
Bu satırları seçmenin en iyi yolu nedir? Bazı veriler ile oynamak:
rank_int rank
year foo
2015 1.381845 2 320
1.234795 2 259
1.148488 199 2
0.866704 2 363
0.738022 2 319
Sadece df.sort_index (inplace = True) 'kullanarak sıralama yaparsanız ne olur? – ASGM
@ASGM Çalışıyor, ama o zamandan beri yükselmediğim için yanlış gruba 'foo' vereceğim. – FooBar