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

get_loc
こつこつPython
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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト