Pandas Dataframe のインデックスとして列を設定する
Manav Narula
2020年12月21日
Pandas
Pandas DataFrame
-
Pandas DataFrame で列をインデックスにするには
set_index()
を使用する -
read_excel
やread_csv
でindex_col
パラメータを使って、Pandas DataFrame のインデックスとして列を設定する

通常、Pandas Dataframe では、0 からオブジェクトの長さまでの通し番号がデフォルトでインデックスとして設定されています。また、DataFrame の特定の列をインデックスにすることもできます。pandas に用意されている set_index()
を利用することもできますし、エクセルや CSV ファイルから DataFrame をインポートする際に列のインデックスを指定することもできます。
Pandas DataFrame で列をインデックスにするには set_index()
を使用する
set_index()
はリスト、系列、DataFrame に適用してインデックスを変更することができます。DataFrame の場合、set_index()
は複数の列をインデックスにすることもできます。
DataFrame の場合は、複数の列をインデックスにすることもできます。
import pandas as pd
import numpy as np
colnames = ['Name','Time','Course']
df = pd.DataFrame([['Jay',10,'B.Tech'],
['Raj',12,'BBA'],
['Jack',11,'B.Sc']], columns = colnames)
print(df)
出力:
Name Time Course
0 Jay 10 B.Tech
1 Raj 12 BBA
2 Jack 11 B.Sc
列をインデックスにするための構文。
dataframe.set_index(Column_name,inplace = True)
set_index()
を用いて単一の列をインデックスにします。
import pandas as pd
import numpy as np
colnames = ['Name','Time','Course']
df = pd.DataFrame([['Jay',10,'B.Tech'],
['Raj',12,'BBA'],
['Jack',11,'B.Sc']], columns = colnames)
df.set_index('Name', inplace = True)
print(df)
出力:
Time Course
Name
Jay 10 B.Tech
Raj 12 BBA
Jack 11 B.Sc
複数の列をインデックスにします。
import pandas as pd
import numpy as np
colnames = ['Name','Time','Course']
df = pd.DataFrame([['Jay',10,'B.Tech'],
['Raj',12,'BBA'],
['Jack',11,'B.Sc']], columns = colnames)
df.set_index(['Name','Course'], inplace = True)
print(df)
出力:
Time
Name Course
Jay B.Tech 10
Raj BBA 12
Jack B.Sc 11
read_excel
や read_csv
で index_col
パラメータを使って、Pandas DataFrame のインデックスとして列を設定する
Excel や CSV ファイルから DataFrame を読み込む際に、DataFrame のインデックスにしたい列を指定することができます。
例:
import pandas as pd
import numpy as np
df = pd.read_excel("data.xlsx",index_col = 2)
print(df)
出力:
Name Time
Course
B.Tech Mark 12
BBA Jack 10
B.Sc Jay 11
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn