如何使用列名和列值从pandas DataFrame生成列表?

tur*_*tle 17 python pandas

我有一个pandas dataframe对象,如下所示:

   one  two  three  four  five
0    1    2      3     4     5
1    1    1      1     1     1
Run Code Online (Sandbox Code Playgroud)

我想生成一个列表对象列表,其中第一项是列标签,其余列表值是列数据值:

nested_list = [['one', 1, 1]
               ['two', 2, 1]
               ['three', 3, 1]
               ['four', 4, 1]
               ['five', 5, 1]]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢您的帮助.

Bre*_*arn 35

最简单的方法可能是list(dt.T.itertuples())(dt您的数据框在哪里).这会生成一个元组列表.

  • 虽然不是列表列表,但创建元组列表 (3认同)

Joo*_*oop 10

上面的@BrenBarn答案会产生一个元组列表,而不是列表中的列表.我特别需要一个列表列表,以便能够使用DataNitro将数据帧写入spreadsheed.使用列表推导改编了上面的例子:

[list(x) for x in dt.T.itertuples()]
Run Code Online (Sandbox Code Playgroud)

这会根据需要产生结果


小智 5

严格来说,如果你想要嵌套列表(而不是元组列表),你可以这样做

df.values.tolist()
Run Code Online (Sandbox Code Playgroud)

因为df.values是一个numpy数组.这将为您提供所需的列表列表:

[[0.0001313652121930252, 3.5915356549999985e-05], 
 [3.5915356549999985e-05, 0.00011634321240684215]]
Run Code Online (Sandbox Code Playgroud)