PythonのPandasでindexを取得する方法

Python,イメージ

AI実装検定のご案内

Pythonの Pandasでindexを取得する方法 を、基礎から応用まで詳しく解説します。

目次

Indexとは?

PandasのDataFrameSeriesには「行ラベル(index)」があり、データを識別するためのキーの役割を持っています。

SQLでいう「主キー」に近いイメージです。

import pandas as pd

df = pd.DataFrame({
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35]
})

print(df)

この場合、0, 1, 2 がindex(行ラベル)です。

Indexを取得する基本的な方法

df.index

DataFrame.index 属性でインデックス全体を取得できます。

print(df.index)

これは「0から始まり、3未満まで、1刻み」のインデックスを表します。

インデックスをリスト化

print(df.index.tolist())

Pythonのリストとして扱えるのでループなどに使いやすいです。

各行のindexを取得

for idx in df.index:
    print(idx)

特定の行のindexを取得 (.iloc.index)

row = df.iloc[1]  # 2行目 (Bob)
print(row.name)   # インデックス値

※ここでのrow.nameは「Seriesのindex名」ではなく「行インデックス値」です。

条件からindexを取得する方法

特定の条件を満たす行のindexを取得したいときは次のようにします。

例: age が30以上の行のindexを取得

idx = df[df["age"] >= 30].index
print(idx)

indexを指定・変更する方法

別の列をindexにする

df2 = df.set_index("name")
print(df2)

この場合、indexは"name"列になります。

indexをリセットする

df_reset = df2.reset_index()
print(df_reset)

応用例

indexから行を直接取得

print(df.loc[1])

indexが文字列の場合

df_named = df.set_index("name")
print(df_named.loc["Bob"])

indexの存在確認

print("Alice" in df_named.index)  # True
print("David" in df_named.index)  # False

まとめ

  • 全体のindexdf.index
  • リスト化df.index.tolist()
  • 条件で取得df[条件].index
  • 各行のindexrow.nameiterrows()ilocで取得した行)
  • indexを変更set_index()
  • indexを戻すreset_index()

以上、PythonのPandasでindexを取得する方法についてでした。

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

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