如何将pandas DataFrame的列转换为列表的列表?

36 投票
2 回答
97481 浏览
提问于 2025-04-17 17:18

我有一个包含多个列的 pandas 数据框。

2u    2s    4r     4n     4m   7h   7v
0     1     1      0      0     0    1
0     1     0      1      0     0    1
1     0     0      1      0     1    0
1     0     0      0      1     1    0
1     0     1      0      0     1    0
0     1     1      0      0     0    1

我想做的是把这个 pandas.DataFrame 转换成下面这样的列表

X = [
     [0, 0, 1, 1, 1, 0],
     [1, 1, 0, 0, 0, 1],
     [1, 0, 0, 0, 1, 1],
     [0, 1, 1, 0, 0, 0],
     [0, 0, 0, 1, 0, 0],
     [0, 0, 1, 1, 1, 0],
     [1, 1, 0, 0, 0, 1]
    ]

2u、2s、4r、4n、4m、7h、7v 是列的标题。这个标题会根据不同的情况而变化,所以不用太在意它。

2 个回答

2

要把数据框(Dataframe)转换成列表,可以使用 tolist() 函数来实现。假设我有一个数据框 df。

要转换成列表,你只需要简单地使用 tolist() 函数。

df.values.tolist()

你也可以通过以下方式将某一特定的列转换成列表:

df['column name'].values.tolist()
73

看起来像是一个转置的矩阵:

df.values.T.tolist()

[list(l) for l in zip(*df.values)]

[[0, 0, 1, 1, 1, 0],
 [1, 1, 0, 0, 0, 1],
 [1, 0, 0, 0, 1, 1],
 [0, 1, 1, 0, 0, 0],
 [0, 0, 0, 1, 0, 0],
 [0, 0, 1, 1, 1, 0],
 [1, 1, 0, 0, 0, 1]]

撰写回答