[英]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.