代码之家  ›  专栏  ›  技术社区  ›  Boosted_d16

python+pandas-将df转储到循环中的excel

  •  2
  • Boosted_d16  · 技术社区  · 5 年前

    我有一张有100张熊猫唱片的唱片。

    我想循环检查dict中的每个df,并将其转储到excel中,全部放在一张纸上,一个接一个,中间有一个空行。

    我的尝试:

    writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
    workbook = writer.book
    
    for key, values in dd.iteritems():
        df = dd[key]['chart_data']
        df.to_excel(writer, sheet_name='Sheet 1', index=False)
    
    writer.save()
    workbook.close()
    

    我认为它覆盖了dfs。

    有什么建议吗?

    1 回复  |  直到 5 年前
        1
  •  5
  •   Charles Landau    5 年前

    startrow 听起来像是你的解决方案:

    start_row = 0
    for key, values in dd.iteritems():
        df = dd[key]['chart_data']
        df.to_excel(writer, sheet_name='Sheet 1', index=False, startrow=start_row)
        # Edited to respect your requirement for 1 blank row
        # after each df
        start_row = start_row + len(df) + 1 # or df.shape[0] et cetera
    

    startcol ,它的工作原理是一样的,但我认为它的工作原理是一样的。

    编辑:另一种可能更好的方法是 concat

    df = pd.concat([dd[key]["chart_data"] for key, values in dd.iteritems()])
    df.to_excel(...)
    

    但只有当你的 df