在 Pandas Dataframe 中設定列作為索引

Manav Narula 2023年1月30日
  1. 使用 set_index() 在 Pandas DataFrame 中指定列作為索引
  2. 使用 read_excelread_csv 中的 index_col 引數在 Pandas DataFrame 中將列作為索引
在 Pandas Dataframe 中設定列作為索引

通常,在 Pandas Dataframe 中,我們預設以 0 到物件長度的序列號作為索引。我們也可以將 DataFrame 中的某一列作為其索引。為此,我們可以使用 pandas 中提供的 set_index(),也可以在從 excel 或 CSV 檔案中匯入 DataFrame 時指定列作為索引。

使用 set_index() 在 Pandas DataFrame 中指定列作為索引

set_index() 可以應用於列表、序列或 DataFrame 來改變它們的索引。對於 DataFrame,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
)

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_excelread_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
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

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

相關文章 - Pandas DataFrame