将 Pandas DataFrame 列转换为列表

  1. 使用tolist()方法将DataFrame列转换为列表
  2. 使用list()函数将DataFrame列转换为列表
  3. 使用.values属性将DataFrame列转换为列表
  4. 使用列表推导将 DataFrame 列转换为列表
  5. 结论
将 Pandas DataFrame 列转换为列表

在Python中使用Pandas DataFrames工作时,您经常需要将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数据帧中的列是Pandas Series。因此,如果我们需要将列转换为列表,我们可以在Series中使用tolist()方法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属性将此DataFrame的’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_list 变量中的 Python 列表。

使用列表推导将 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 列表。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe

相关文章 - Pandas DataFrame Column

相关文章 - Pandas DataFrame