將 Pandas DataFrame 列轉換為列表

Usama Imtiaz 2023年9月13日
  1. 使用 tolist() 方法將 DataFrame 的列轉換為一個列表
  2. 使用 list() 函數將 DataFrame 的列轉換為一個列表
  3. 使用 .values 屬性將 DataFrame 的列轉換為一個列表
  4. 使用列表推導來將 DataFrame 的欄位轉換為清單
  5. 總結
將 Pandas DataFrame 列轉換為列表

在 Python 中使用 Pandas DataFrame 工作時,您可能經常需要將 DataFrame 的列轉換為 Python 清單。這個過程對於各種數據操作和分析任務非常重要。幸運的是,Pandas 提供了幾種方法來實現這一點,使您能夠輕鬆地以清單形式提取所需的數據。

在本文中,我們將探索將 Pandas DataFrame 列轉換為 Python 清單的不同方法。我們將使用一個包含有關姓名、出生日期(DOB)和薪水信息的示例 DataFrame 來演示這些方法。

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

我們將探索四種不同的方法來執行此轉換:使用 tolist() 方法、list() 函數、.values 屬性和列表推導式。每種方法都有其優點,因此讓我們深入探討一下。

使用 tolist() 方法將 DataFrame 的列轉換為一個列表

Pandas DataFrame 中的一列是一個 Pandas Series。因此,如果我們需要將列轉換為列表,我們可以使用 Seriestolist() 方法tolist() 將 Pandas 數據框的 Series 轉換為一個列表。

在下面的代碼中,df['DOB'] 返回 DataFrame 中名為 DOBSeries 或列。

tolist() 方法將 Series 轉換為列表。

import pandas as pd

df = pd.DataFrame(
    [
        ["James", "1/1/2014", "1000"],
        ["Michelina", "2/1/2014", "12000"],
        ["Marc", "3/1/2014", "36000"],
        ["Bob", "4/1/2014", "15000"],
        ["Halena", "4/1/2014", "12000"],
    ],
    columns=["Name", "DOB", "Salary"],
)

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = df["DOB"].tolist()

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

輸出:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

使用 list() 函數將 DataFrame 的列轉換為一個列表

我們還可以使用 list() 函數將 DataFrame 的列轉換為列表,只需將 DataFrame 傳遞給 list() 函數即可。

我們將使用與上面相同的數據來演示這種方法。

import pandas as pd

df = pd.DataFrame(
    [
        ["James", "1/1/2014", "1000"],
        ["Michelina", "2/1/2014", "12000"],
        ["Marc", "3/1/2014", "36000"],
        ["Bob", "4/1/2014", "15000"],
        ["Halena", "4/1/2014", "12000"],
    ],
    columns=["Name", "DOB", "Salary"],
)

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = list(df["DOB"])

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

輸出:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

使用 .values 屬性將 DataFrame 的列轉換為一個列表

另一種實現這一目標的方法是使用 .values 屬性。

讓我們通過使用 .values 屬性將該數據框的 ‘Salary’ 列轉換為 Python 列表的步驟。

Pandas Series 的 .values 屬性返回數據的 NumPy 數組表示。為了將其轉換為 Python 列表,您可以使用 .tolist() 方法。這是如何做的:

salary_list = df["Salary"].values.tolist()

以下是完整的代碼:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Convert the 'Salary' column to a list using .values
salary_list = df["Salary"].values.tolist()

print(salary_list)

輸出:

['1000', '12000', '36000', '15000', '12000']

執行此程式碼後,DataFrame 中的 Salary 欄位將被轉換為 Python 的清單,並儲存在 salary_list 變數中。

使用列表推導來將 DataFrame 的欄位轉換為清單

列表推導是 Python 中一種簡潔且高效的方法來建立清單。要使用列表推導將 Pandas DataFrame 的欄位轉換為 Python 清單,可以按照以下程式碼進行操作。

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

以下是完整的程式碼:

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": [1000, 12000, 36000, 15000, 12000],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

print(salary_list)

輸出結果:

[1000, 12000, 36000, 15000, 12000]

總結

在本文章中,我們探討了四種將 Pandas DataFrame 的欄位轉換為 Python 清單的不同方法:使用 tolist() 方法、list() 函式、.values 屬性以及列表推導。每種方法都有其優點,可以根據具體的使用案例和編碼風格進行選擇。

無論您偏好 tolist() 方法的簡單性、list() 函式的標準 Python 風格、.values 屬性的效率,還是列表推導的可讀性,Pandas 都提供了多種選項,以幫助您無縫地將 DataFrame 的欄位轉換為 Python 清單。

相關文章 - Pandas DataFrame Column

相關文章 - Pandas DataFrame