繁体   English   中英

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

[英]How to generate a list from a pandas DataFrame with the column name and column values?

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

   one  two  three  four  five
0    1    2      3     4     5
1    1    1      1     1     1

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

nested_list = [['one', 1, 1]
               ['two', 2, 1]
               ['three', 3, 1]
               ['four', 4, 1]
               ['five', 5, 1]]

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

最简单的方法可能是list(dt.T.itertuples()) (其中dt是你的数据帧)。 这会生成一个元组列表。

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

[list(x) for x in dt.T.itertuples()]

这会根据需要产生结果

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

df.values.tolist()

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

[[0.0001313652121930252, 3.5915356549999985e-05], 
 [3.5915356549999985e-05, 0.00011634321240684215]]

我天真的方法是使用iteritems,将'll'作为列表列表,将l作为单个列表。

df = DataFrame({'one':[1,1], 'two':[2,1], 'three':[3,1], 'four':[3,1] })

ll = []

for idx,row in df.iteritems():
    l = row.values.tolist()
    l.insert(0,idx)
    ll.append(l)

我知道这个老问题,但这对我来说比其他答案更有意义。

如果这是您的数据框:

df = pd.DataFrame({'one': [1, 1], 'three': [3, 1], 'four': [4, 1],
           'five': [5, 1], 'two': [2, 1]},
          columns=['one', 'two', 'three', 'four', 'five'])

做这个:

df.T.reset_index().values.tolist()

结果

[['one', 1, 1], ['two', 2, 1], ['three', 3, 1], ['four', 4, 1], ['five', 5, 1]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM