将Pandas数据帧(DataFrame)转换为列表(list)是数据分析和机器学习中常见的操作。下面提供一份完整攻略,帮助读者快速掌握这一技巧。
1. 确认数据帧的结构
在将数据帧转换为列表之前,需要先确认数据帧的结构。具体来说,需要查看数据帧中的列数和每一列的数据类型,以确定最终列表的结构。
例如,假设我们有以下简单的数据帧,包含4个列,分别为”id”、”name”、”age”和”gender”:
import pandas as pd
df = pd.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"gender": ["F", "M", "M"]
})
print(df)
输出结果如下:
id name age gender
0 1 Alice 25 F
1 2 Bob 30 M
2 3 Charlie 35 M
2. 使用values属性转换为数组
在确认数据帧结构后,我们可以使用values
属性将数据帧转换为一个数组(numpy.ndarray)。这个数组包含了数据帧中所有的值,但是没有列名和行索引。
array = df.values
print(array)
输出结果如下:
array([[1, 'Alice', 25, 'F'],
[2, 'Bob', 30, 'M'],
[3, 'Charlie', 35, 'M']], dtype=object)
3. 将数组转换为列表
最后,我们可以使用Python内置的tolist()
方法将数组转换为一个包含多个列表(list)的列表。每个列表代表了一个数据帧中的一行数据,其中包含数据帧中所有列的值。
list_of_lists = array.tolist()
print(list_of_lists)
输出结果如下:
[[1, 'Alice', 25, 'F'], [2, 'Bob', 30, 'M'], [3, 'Charlie', 35, 'M']]
完整示例代码
下面是一个完整的示例代码,可以将上述步骤整合在一起。
import pandas as pd
# 创建一个简单的数据帧
df = pd.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"gender": ["F", "M", "M"]
})
# 将数据帧转换为数组
array = df.values
# 将数组转换为列表
list_of_lists = array.tolist()
print(list_of_lists)
输出结果如下:
[[1, 'Alice', 25, 'F'], [2, 'Bob', 30, 'M'], [3, 'Charlie', 35, 'M']]
希望这份攻略能够帮助读者顺利地将Pandas数据帧转换为列表!