如何将Pandas DataFrame转换为列表?

naz*_*naz 32 python dataframe pandas

我有一个包含多列的Python DataFrame.

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
Run Code Online (Sandbox Code Playgroud)

我想要做的是将其转换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]
    ]
Run Code Online (Sandbox Code Playgroud)

2u 2s 4r 4n 4m 7h 7v是列标题.它会在不同的情况下发生变化,所以不要为此烦恼.

eum*_*iro 66

它看起来像一个转置矩阵:

df.values.T.tolist()
Run Code Online (Sandbox Code Playgroud)
[list(l) for l in zip(*df.values)]
Run Code Online (Sandbox Code Playgroud)

[[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]]
Run Code Online (Sandbox Code Playgroud)

  • 这将返回列表的列表.一个``list(df.values.flatten())``完成这项工作. (33认同)
  • @pms通过查看OP所需的输出,看起来他们确实想要创建一个列表列表.但你可能会将你的评论转换为答案,因为它可能会被一些愚蠢的旗帜删除.此外,我个人发现您的评论非常有用,因为我正在寻找单一列表选项.最后,这可能被修改为`list(df.values.T.flatten())`因此值将按列保存. (2认同)