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: レベル「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 中国語 Web サイトの他の関連記事を参照してください。