this answer से प्रेरित और this question के आसान उत्तर की कमी के कारण मैंने खुद को मल्टीइंडेक्स स्तर द्वारा फ़िल्टर करने के लिए जीवन को आसान बनाने के लिए एक छोटी वाक्य रचनात्मक चीनी लिखने में पाया।स्लाइस पांडा मल्टीइंडेक्स स्तर या सबलेवल द्वारा डेटाफ्रेम
def _filter_series(x, level_name, filter_by):
"""
Filter a pd.Series or pd.DataFrame x by `filter_by` on the MultiIndex level
`level_name`
Uses `pd.Index.get_level_values()` in the background. `filter_by` is either
a string or an iterable.
"""
if isinstance(x, pd.Series) or isinstance(x, pd.DataFrame):
if type(filter_by) is str:
filter_by = [filter_by]
index = x.index.get_level_values(level_name).isin(filter_by)
return x[index]
else:
print "Not a pandas object"
लेकिन अगर मैं पांडा विकास दल जानते हैं (और मैं शुरू कर रहा हूँ, धीरे धीरे!) वहाँ पहले से ही यह करने के लिए एक अच्छा तरीका है, और मैं बस नहीं जानता कि यह अभी तक है!
क्या मैं सही हूँ?
स्पष्टता के लिए, मैन्युअल रूप से इस dataframe wou पर यह कर ld 'df.loc की तरह दिखें [pd.IndexSlice [:,:, [' C1 ',' C3 '],:],:] 'या' df.loc (axis = 0) [:,:, [' C1 ',' सी 3 '],:] – joris
क्या मल्टीइंडेक्स से दिनांक सीमा का चयन करने का कोई तरीका है? मेरे पास 'df.loc है [:, pd.IndexSlice [:,:,:,:, 'value']] 'जहां पहला': 'एक तिथि होगी और मैं कई तिथियों से टुकड़ा करना चाहता हूं न कि सिर्फ एक दिन – toasteez