【毎日Python】Pythonでデータフレームの列をインデックスに指定する方法|DataFrame.set_index

set_index
こつこつPython

Pythonでデータフレームの列をインデックスにする方法です。
使用するのは、Pythonのpandasライブラリのset_indexメソッドです。

import pandas as pd

df = pd.read_csv('./sample.csv')
df.head()  

実行結果:
df_set

まず、set_indexメソッドの引数に、インデックスにしたい列のカラムを指定します。
なお、今回はデータの量が多いため、headメソッドで先頭の5件のみ表示させてみます。
実行します。
商品名をインデックスとして表示することができました。

df.set_index('商品名').head()

実行結果:
df01

インデックスに指定した列を残しておくには、引数dropにFalseを指定します。
実行します。
指定した通りに表示することができました。

df.set_index(['商品名'], drop=False).head()

実行結果:
df02

元のインデックスを残すには、引数appendにTrueを指定します。
実行します。
指定した通りに表示することができました。

df.set_index(['商品名'], append=True).head()

実行結果:
df03

インデックスにする列を、複数指定することもできます。
引数にリストで複数のカラムを指定して実行します。
売上日と商品名をマルチインデックスとして表示することができました。

df.set_index(['売上日', '商品名']).head()

実行結果:
df04

なお、set_indexメソッドに似たメソッドで、reset_indexメソッドがあります。
reset_indexメソッドでは、データフレームに新しいインデックスを附番することができます。

df.reset_index().head()

実行結果:
df_reset

関連メソッド

【毎日Python】Pythonでデータフレームに新しいインデックスを附番する方法|DataFrame.reset_index

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

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

キノクエスト