将 Pandas DataFrame 列转换为列表
-
使用
tolist()
方法将DataFrame列转换为列表 -
使用
list()
函数将DataFrame列转换为列表 -
使用
.values
属性将DataFrame列转换为列表 - 使用列表推导将 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中名称为DOB
的Series
或列。
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 列表。
相关文章 - Pandas DataFrame Column
- 如何将 Pandas DataFrame 列标题获取为列表
- 如何删除 Pandas DataFrame 列
- 如何在 Pandas 中将 DataFrame 列转换为日期时间
- 如何获得 Pandas 列中元素总和
- 如何更改 Panas DataFrame 列的顺序
- 如何在 Pandas 中将 DataFrame 列转换为字符串