【毎日Python】Pythonでインデックスから行番号、カラムから列番号を取得する方法|pandas.index.get_loc

【毎日Python】Pythonでインデックスから行番号、カラムから列番号を取得する方法|pandas.index.get_loc
import pandas as pd
df = pd.DataFrame({'col01':[1, 2, 3],
                    'col02':[4, 5, 6], 
                    'col03':[7, 8, 9]}
                   ,index=['idx01', 'idx02', 'idx03'])
df

Pythonでデータフレームの行番号と列番号と取得する方法です。
使用するのは、PythonのPandasライブラリのget_loc(ゲットロク)メソッドです。
このようなデータフレームを用意します。

#これで行番号が取得できて
df.index.get_loc('idx03')

まず、行番号を取得してみましょう。
行の場合はindexの後にget_locで引数に行の名前を指定します。
実行します。
idx03の行番号である2が取得できました。
次に、列番号を取得してみましょう。
列の場合はcolumnsの後にget_locで引数に列の名前を指定します。
実行します。
col02の列番号である1が取得できました。

#これで列番号が取得できます
df.columns.get_loc('col02')
df.index = ['a', 'a', 'b']
df
df.index.get_loc('a')

また、このようにインデックスが重複している場合は、重複したインデックスを指定すると、スライスで結果が表示されます。
スライスで0から2、つまり0番目と1番目ということがわかります。

df.index = ['x', 'y', 'x']
df
df.index.get_loc('x')

なお、インデックスに重複があっても並んでいない場合は、TrueかFalseのbool型で結果が返ってきます。

関連メソッド

【毎日Python】Pythonで行名と列名を指定して値を取得する方法|DataFrame.loc

【毎日Python】Pythonで文字列やリスト、データフレームからインデックスを指定して値を取得する方法|スライス操作

【毎日Python】Pythonでマルチインデックスのデータフレームからデータを取得する方法|DataFrame.xs