如何在 Pandas DataFrame 中新增標題行?


Pandas 是 Python 中一個非常流行的資料處理和操作庫,經常用於資料分析和資料預處理。Pandas 庫具有一個強大的資料結構,稱為 Pandas DataFrame,用於儲存任何型別的二維資料。在這篇文章中,我們將學習各種向 Pandas DataFrame 新增標題行(或簡稱列名)的方法。

注意 − 本文中程式碼已在 Jupyter Notebook 上測試。

我們將看到五種新增標題行的方法:

  • 使用字典建立 DataFrame 時新增標題行

  • 使用列表的列表建立 DataFrame 時新增標題行

  • 建立 DataFrame 後新增標題行

  • 從 CSV 檔案讀取檔案時新增標題行

  • 使用 set_axis 方法新增標題行

讓我們從匯入 Pandas 開始

import pandas as pd

方法 1:使用字典建立 DataFrame 時

示例

# Add header row while creating the dataframe through a dictionary
data = {'course': ['Math', 'English', 'History', 'Science', 'Physics'], 'instructor': ['John Smith', 'Sarah Johnson', 'Mike Brown', 'Karen Lee', 'David Kim'], 'batch_size': [43, 25, 19, 51, 48]
}
df1 = pd.DataFrame(data)
df1

輸出

  course      instructor    batch_size
0 Math        John Smith       43
1 English  Sarah Johnson       25
2 History     Mike Brown       19
3 Science      Karen Lee       51
4 Physics      David Kim       48

在上面的程式碼中,我們透過字典初始化 DataFrame 的虛擬資料。鍵值對分別表示列名和列資料。Pandas 自動讀取此字典,並能夠生成包含標題行的列。

方法 2:使用列表的列表建立 DataFrame 時

示例

# Add header row while creating the dataframe through lists
data = [['apple', 'red', 5], ['banana', 'yellow', 12]]
columns = ['fruit', 'color', 'quantity']
df2 = pd.DataFrame(data, columns=columns)
df2

輸出

   fruit   color  quantity
0 apple      red     5
1 banana  yellow    12

在此方法中,我們有一個列表的列表,其中每個子列表儲存 DataFrame 行的資訊。我們建立一個列名列表,並在初始化 DataFrame 時將其傳遞給 pd.DataFrame 方法。

方法 3:建立 DataFrame 後

示例

# Add header row after creating the dataframe
data = [['apple', 'red', 5], ['banana', 'yellow', 12]]
columns = ['fruit', 'color', 'quantity']
df3 = pd.DataFrame(data)
df3.columns = columns
df3

輸出

fruit      color  quantity
0 apple      red    5
1 banana  yellow   12

在上面的程式碼中,我們首先初始化一個沒有任何標題行的 DataFrame。然後,我們初始化一個我們想要使用的列名列表,並使用 pd.DataFrame.columns 屬性設定已定義的 Pandas DataFrame 的標題行。

方法 4:從 CSV 檔案讀取檔案時

示例

嘗試使用 Pandas 讀取 CSV 檔案時,它會自動將第一行視為列名。但是,我們的資料集中可能不存在列名,如下面的示例所示。假設資料集儲存為“course_data.csv”。

# Incorrect header row
df4 = pd.read_csv('course_data.csv')
df4

輸出

   Math        John Smith     43
0 English   Sarah Johnson     25
1 History      Mike Brown     19
2 Science       Karen Lee     51
3 Physics       David Kim     48

輸出顯示 Pandas 將資料樣本解釋為標題行。為了解決這個問題,我們將透過“names”引數傳遞標題行名稱列表來指定列名。

示例

# Add header row while reading files from CSV
columns = ['course', 'instructor', 'batch_size']
df4 = pd.read_csv('course_data.csv', names=columns)
df4

輸出

  course      instructor    batch_size
0 Math         John Smith      43
1 English   Sarah Johnson      25
2 History      Mike Brown      19
3 Science       Karen Lee      51
4 Physics       David Kim      48

如上輸出所示,Pandas 不再將第一個資料樣本讀取為標題行!

方法 5:使用 set_axis 方法

示例

我們已經看到了如何在方法 2 中向現有 DataFrame 新增標題行。現在我們將使用 pd.DataFrame.set_axis 方法實現相同的功能。

# Add row row after creating the dataframe using set_axis
data = [['dog', 'brown', 4],
['cat', 'white', 4],
['chicken', 'white', 2]]
df5 = pd.DataFrame(data)
columns = ['animal', 'color', 'num_legs']
df5.set_axis(columns, axis=1, inplace=True)
df5

輸出

   animal   color    num_legs
0   dog     brown     4
1   cat     white     4
2  chicken  white     2

這裡,我們首先使用上面的資料初始化一個沒有任何標題行的 DataFrame。然後,我們使用 set_axis 方法新增標題行。我們將 axis=1 傳遞以指定我們正在設定列名。我們還將標誌“inplace”設定為 True 以進行就地操作。

注意 − 設定 axis = 0 將設定行名而不是列名,並且還可能引發錯誤,因為通常行數多於列數。

結論

本文教我們如何在 Pandas 中向 DataFrame 新增標題。我們看到了五種不同的方法,這些方法可以用於各種不同的應用程式和專案。

更新於:2023年3月23日

7K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.