首页 > 解决方案 > 将具有 3 列通用标题的数据框列表导出到 Excel

问题描述

我有一个已经有列标题的数据框列表,我想知道如何导出到 excel,它显示了三列的另一个常见标题,即 q1,它是第一个具有索引的数据框,依此类推。

colnames=['q1','q2','q3']
    table=[pd.DataFrame([['tom', 10], ['nick', 15], ['juli', 14]], columns = ['Name', 'Age']),pd.DataFrame([['Nick', 10], ['Allen', 15], ['YOLO', 14]], columns = ['Name', 'Age']),
        pd.DataFrame([['james', 10], ['jack', 15], ['YOLO', 14],['jill', 10], ['twitter', 15], ['fb', 14]], columns = ['Name', 'Age'])]

如果可能,excel中的预期结果将采用这种格式

q1            q2           q3
  name age      name age     name   age
0 tom  10     0 Nick  10   0 james   10 
1 nick 15     1 Allen 15   1 jack    15
2 juli 14     2 YOLO  14   2 YOLO    14
                           3 jill    10
                           4 twitter 15
                           5 fb      14

先感谢您。

标签: pythonexcel

解决方案


这是一个工作示例,只需安装xlwt软件包,您就可以将其转储到excel文件中。(请注意,您还导出索引,您可以将其导出到 csv 而无需替换方法to_csv并添加标志index=False- 但您将失去合并标题列的所需效果)

import pandas as pd
table=[pd.DataFrame([['tom', 10], ['nick', 15], ['juli', 14]], columns = ['Name', 'Age']),
       pd.DataFrame([['Nick', 10], ['Allen', 15], ['YOLO', 14]], columns = ['Name', 'Age']),
       pd.DataFrame([['james', 10], ['jack', 15], ['YOLO', 14],['jill', 10], ['twitter', 15], ['fb', 14]], columns = ['Name', 'Age'])]
names = ['q1', 'q2', 'q3']
for t, name in zip(table, names):
    t.columns = pd.MultiIndex.from_product([[name], t.columns])
pd.concat(table, axis=1, ).to_excel("my_excel.xls")

推荐阅读