मैं सूचकांक (year
, foo
), जहां मैं foo
जहां year == someYear
के एक्स सबसे बड़ा टिप्पणियों चयन करना चाहते हैं के साथ एक डेटा फ्रेम की आवश्यकता है।MultiIndex स्लाइसिंग सूचकांक पूरी तरह से lexsorted किए जाने की
मेरे दृष्टिकोण
df.sort_index(level=[0, 1], ascending=[1, 0], inplace=True)
df.loc[pd.IndexSlice[2002, :10], :]
था, लेकिन मैं
KeyError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)'
मिल रहा छँटाई (जैसे ascending = [0, 0]
) के अलग-अलग रूपों की कोशिश की, लेकिन वे सभी त्रुटि के कुछ प्रकार में हुई।
यदि मैं केवल xth
पंक्ति चाहता था, मैं df.groupby(level=[0]).nth(x)
छाँटने के बाद, लेकिन जब से मैं पंक्तियों का एक सेट करना चाहते हैं, कि काफी कुशल महसूस नहीं करता है हो सकता है।
इन पंक्तियों का चयन करने का सबसे अच्छा तरीका क्या है? कुछ डेटा के साथ खेलने के लिए:
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
क्या होता है यदि आप बस 'df.sort_index (inplace = True)' का उपयोग करके सॉर्ट करते हैं? – ASGM
@ASGM यह काम करता है, लेकिन जब से मैं आरोही नहीं हूं, तो मुझे 'foo' का गलत समूह मिल जाएगा। – FooBar