Pandas: 列名から列インデックスを取得する方法
次のメソッドを使用して、pandas の列名から列インデックス値を取得できます。
方法 1: 列名の列インデックスを取得する
df. columns . get_loc (' this_column ')
方法 2: 複数の列名の列インデックスを取得する
cols = [' this_column ', ' that_column '] [df. columns . get_loc (c) for c in cols if c in df]
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' sales ': [18, 10, 14, 13, 19, 24, 25, 29], ' returns ': [1, 2, 2, 3, 2, 3, 5, 4], ' recalls ': [0, 0, 2, 1, 1, 2, 0, 1]}) #view DataFrame print (df) store sales returns recalls 0 to 18 1 0 1 to 10 2 0 2 A 14 2 2 3 A 13 3 1 4 B 19 2 1 5 B 24 3 2 6 B 25 5 0 7 B 29 4 1
例 1: 列名の列インデックスを取得する
次のコードは、「returns」という名前の列の列インデックス値を取得する方法を示しています。
#get column index for column with the name 'returns' df. columns . get_loc (' returns ') 2
「return」という名前の列の列インデックス値は2です。
注: Python では列のインデックス値は 0 から始まります。したがって、「return」は DataFrame の 3 番目の列であるため、そのインデックス値は 2 です。
例 2: 複数の列名の列インデックスを取得する
次のコードは、DataFrame 内の複数の列の列インデックス値を取得する方法を示しています。
#define list of columns to get index for cols = [' store ', ' returns ', ' recalls '] #get column index for each column in list [df. columns . get_loc (c) for c in cols if c in df] [0, 2, 3]
結果から次のことがわかります。
- 「store」という名前の列の列インデックス値は0です。
- 「return」という名前の列の列インデックス値は2です。
- 「reminders」という名前の列の列インデックス値は3です。
注: pandas get_loc()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
Pandas DataFrameからセル値を取得する方法
Pandas DataFrame でインデックスの名前を変更する方法
Pandas で列を名前で並べ替える方法