給定一個帶有MultiIndex 的Pandas DataFrame,我們如何根據特定值選擇行/每個索引等級中的標籤?
df.loc[key, :]
df.xs(level_key, level=level_name, drop_level=True/False)
df.query("condition")
mask = df.index.get_level_values(level_name).isin(values_list) selected_rows = df[mask]
範例1:選擇等級「一」中具有特定值的行,且'two':
# Using loc selected_rows = df.loc[['a'], ['t', 'u']] # Using xs selected_rows = df.xs('a', level='one', drop_level=False) selected_rows = selected_rows.xs(['t', 'u'], level='two') # Using query selected_rows = df.query("one == 'a' and two.isin(['t', 'u'])") # Using get_level_values one_mask = df.index.get_level_values('one') == 'a' two_mask = df.index.get_level_values('two').isin(['t', 'u']) selected_rows = df[one_mask & two_mask]
範例2:依等級'two'中的數值不等式過濾行:
# Using query selected_rows = df.query("two > 5") # Using get_level_values two_mask = df.index.get_level_values('two') > 5 selected_rows = df[two_mask]
以上是如何有效地選擇 Pandas MultiIndex DataFrame 中的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!