如何将Pandas数据帧转换为列表

  • Post category:Python

将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数据帧转换为列表!