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で文字列やリスト、データフレームからインデックスを指定して値を取得する方法|スライス操作