Pandasのメソッド説明 DataFrame.xs

PandasのDataFrame.xsメソッドは、データフレームから特定の行または列を取得するためのメソッドです。xsは、データフレーム内の行または列をラベルまたは位置に基づいて選択するのに使用されます。主に、多階層のインデックスを持つデータフレームで便利です。

以下は、DataFrame.xsメソッドの一般的な使い方と主要なパラメータの説明です。

基本的な使用法(行の取得):

python
import pandas as pd

# サンプルデータフレームを作成
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Math': [85, 90, 78, 92],
        'English': [70, 88, 95, 80]}
df = pd.DataFrame(data)

# インデックスを'Name'列に設定
df.set_index('Name', inplace=True)

# 特定の行を取得
alice_scores = df.xs('Alice')
print(alice_scores)

この例では、DataFrame.xsメソッドを使用して、’Alice’という名前の行(インデックス)を取得しました。結果として得られるシリーズには、’Alice’の数学と英語のスコアが含まれています。

axisパラメータを使用した列の取得:

axisパラメータを使用して、列を取得することもできます。axis=1は列を表し、axis=0は行(デフォルト)を表します。

python
# 特定の列を取得
math_scores = df.xs('Math', axis=1)
print(math_scores)

levelパラメータ(多階層のインデックスの場合):

多階層のインデックスを持つデータフレームの場合、levelパラメータを使用して、どのレベルのインデックスを操作するかを指定できます。

python
# 多階層のインデックスを持つサンプルデータフレームを作成
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Subject': ['Math', 'Math', 'English', 'English'],
        'Score': [85, 90, 78, 92]}
df_multiindex = pd.DataFrame(data)
df_multiindex.set_index(['Name', 'Subject'], inplace=True)

# 特定のレベルのインデックスを指定して行を取得
alice_math_score = df_multiindex.xs(('Alice', 'Math'), level=['Name', 'Subject'])
print(alice_math_score)

DataFrame.xsメソッドは、データフレーム内の特定の行または列を選択するのに便利なメソッドです。多階層のインデックスを持つデータフレームで特に有用で、特定の階層のインデックスを指定してデータを取得できます。