Cross-section
xs()メソッドを使って、特定levelの要素を取得しやすくできる。idxを使用するよりさらに直感的。
df.xs("one", level="second")
df.xs("bar", level="first")
Sliceを用いるとこのような感じ
df.loc[(slice(None), "one"), :]
IndexSliceを用いるとこう
df.loc[idx[:, "one"], :]
axisで列方向への選択も可能
df.xs("one", level="second", axis=1)
タプルを引数にし、複数の条件での抽出も可能
df.xs(("one", "bar"), level=("second", "first"), axis=1)
drop_level引数へFalseを指定することで、levelの状態を保ったまま抽出が行える。IndexSliceを用いた抽出結果と同一になる
df.xs("one", level="second", axis=1, drop_level=False)
デフォルトはTrue
df.xs("one", level="second", axis=1, drop_level=True)
The following two tabs change content below.
千葉県在住のエンジニアです。最近はPythonやってます。