将Pandas数据帧转换为包含索引,数据和列的列表

时间:2015-11-12 19:31:48

标签: python python-2.7 pandas dataframe

我有一个Pandas数据框,我想将其转换为列表,其中每个子列表都是数据帧中的一行。我如何还包括索引值,以便稍后可以使用ReportLab

将其输出到PDF表格
import pandas as pd
df = pd.DataFrame(index=['Index 1', 'Index 2'],
                  data=[[1,2],[3,4]],
                  columns=['Column 1', 'Column 2'])

list = [df.columns[:,].values.astype(str).tolist()] + df.values.tolist()
print list

输出:

[['Column 1', 'Column 2'], [1L, 2L], [3L, 4L]]

期望的输出:

[['Column 1', 'Column 2'], ['Index 1', 1L, 2L], ['Index 2', 3L, 4L]]

2 个答案:

答案 0 :(得分:12)

In [29]:
[df.columns.tolist()] + df.reset_index().values.tolist()
Out[29]:
[['Column 1', 'Column 2'], ['Index 1', 1L, 2L], ['Index 2', 3L, 4L]]

答案 1 :(得分:1)

在此行中添加列表理解:

list = [df.columns[:,].values.astype(str).tolist()] + [[index] + vals for index,value in zip(df.index.tolist(),df.values.tolist())]

另外,因为您的第一个项目中的列为item[colindex] = column at colindex,我可能会更改:['Index 1',x1,y1][x1,y1,'Index 1']?我不知道Index项的位置是否重要,但这似乎更有意义,以便列排列?虽然我不知道你是如何使用你的数据所以也许不是:)

已编辑:df.index.tolist()优于df.index.values.tolist(),我认为它只返回项目,因此您需要将[index]初始化为列表,而不仅仅是index