Pandasの行番号と列番号を取得する方法について

Python,イメージ

AI実装検定のご案内

Pandasで「行番号」や「列番号」を取得するにはいくつか方法があり、用途によって使い分けます。

ここでは 行番号(インデックス位置)列番号(カラム位置) をそれぞれ取得する方法を詳しく整理します。

目次

行番号を取得する方法

Pandasの行は「インデックス」で管理されていますが、必ずしも数値(0,1,2…)とは限らず、文字列や日付型の場合もあります。

そこで、行番号(位置情報)を扱うには以下の方法があります。

df.index でインデックスを確認

import pandas as pd

df = pd.DataFrame({
    "A": [10, 20, 30],
    "B": [40, 50, 60]
}, index=["x", "y", "z"])

print(df.index)   # Index(['x', 'y', 'z'], dtype='object')

この場合、行ラベルは "x","y","z" ですが、行番号(位置)は 0,1,2 に対応しています。

行番号を整数位置で取得 (.iloc)

print(df.iloc[0])  # 先頭行(0番目)
print(df.iloc[1])  # 1番目の行
  • iloc整数ベースの行番号 で指定します。
  • 例えば iloc[0] は「最初の行」、iloc[-1] は「最後の行」。

行番号(整数位置)を取り出す

range(len(df)) を使えば行番号をリスト化できます。

print(list(range(len(df))))  # [0, 1, 2]

あるいは、行ラベルを reset_index() して行番号を明示的に列に追加する方法も便利です。

df_reset = df.reset_index()
print(df_reset)

これで行番号(0,1,2)が index という列として追加されます。

列番号を取得する方法

列も「名前(ラベル)」でアクセスするのが基本ですが、列番号(位置)を取得する方法もあります。

列のリストを確認

print(df.columns)   # Index(['A', 'B'], dtype='object')

ここで「A」は 0 番目、「B」は 1 番目に対応します。

列番号を求める (get_loc)

Pandasの Index オブジェクトには get_loc で位置を調べる機能があります。

col_num = df.columns.get_loc("B")
print(col_num)  # 1

列番号でアクセス (iloc)

行と同じように .iloc を使って列番号で指定可能です。

print(df.iloc[:, 0])  # 0番目の列(A)
print(df.iloc[:, 1])  # 1番目の列(B)

行番号・列番号をまとめて扱う方法

  • 行番号と列番号を同時に指定するなら .iloc が最も直接的です。
print(df.iloc[1, 0])  # 1行目・0列目 → 20
  • 逆に「行ラベルや列ラベル」から番号を求めたい場合は get_loc を使うのが定番です。
row_num = df.index.get_loc("y")
col_num = df.columns.get_loc("B")
print(row_num, col_num)  # 1 1

まとめ

  • 行番号(整数位置)ilocrange(len(df))
  • 列番号(整数位置)columns.get_loc("列名")
  • ラベルから番号を取得index.get_loc("行ラベル")columns.get_loc("列ラベル")
  • 番号から要素を取得df.iloc[行番号, 列番号]

以上、Pandasの行番号と列番号を取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次