【问题标题】:Convert Pandas dataframe to list of list with index, data, and columns将 Pandas 数据框转换为包含索引、数据和列的列表列表
【发布时间】:2016-02-14 06:23:46
【问题描述】:

我有一个 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]]

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案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

    【讨论】:

    • 这行得通,但您实际上是在 Index 中输入然后附加数字,如果我的索引是随机名称怎么办?
    • 我没有意识到您正在使用您的索引值!完全是我的坏,编辑以反映这一点。它不是枚举,而是压缩 df.index.valuesdf.values 的值
    【解决方案2】:
    In [29]:
    [df.columns.tolist()] + df.reset_index().values.tolist()
    Out[29]:
    [['Column 1', 'Column 2'], ['Index 1', 1L, 2L], ['Index 2', 3L, 4L]]
    

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 2017-06-22
      • 2015-05-14
      • 2022-12-11
      • 1970-01-01
      • 2021-01-11
      • 2023-03-21
      • 2022-01-23
      相关资源
      最近更新 更多