【问题标题】:How to write to separate excel worksheets within the same workbook in a for loop?如何在 for 循环中写入同一工作簿中的单独 excel 工作表?
【发布时间】:2018-06-22 13:13:50
【问题描述】:

我有一个计算 DataFrame 并将它们输出到 Excel 工作表的 for 循环。现在,我可以将一个完整的 DF 导出到一个 Excel 表。

如下所示,我正在尝试在 for 循环中添加代码,以便它可以为许多 DF 执行此计算,并将每个 DF 导出到同一工作簿中的单独 Excel 工作表,由 sheet_name 描述。

list = ["AUD_JPY", "AUD_USD"]
granularity = "D"
bar_count = 5000
MA_list = [20, 50]

writer = pd.ExcelWriter('BT.xlsx')
resultsDF = pd.DataFrame(columns = ['instrument', 'Start date', 'End date']

for MA in MA_list:    
    for instrument in list:
...
        data = {'instrument': [instrument], 'Start date': [startDate], 'End date': [endDate]}            
        resultsDF = resultsDF.append(data, ignore_index=True)
        instrument=+1

resultsDF.to_excel(writer, sheet_name='Price_Over_SMA{0}_{1}'.format(MA, 
granularity))
writer.save()

MA=+1

这只会将“仪器”循环中的第一个 DF 导出到 Excel 工作表。我得到这个工作表:

但我还想导出另一个工作表旁边的工作表,在这种情况下应该称为“Price_Over_SMA50_D”。

不知道我做错了什么。

谢谢

【问题讨论】:

标签: python excel pandas for-loop dataframe


【解决方案1】:

我发现这是将writer.save() 移出我的“MA”for 循环并在每次循环后重置 DF 的问题。

【讨论】:

    【解决方案2】:

    使用 Pandas,您可以将不同的数据框保存到同一个 excel 文件的不同工作表中:

    假设我有一个数据框列表 dfs,我想将其保存为绝对路径为 file_name 的 Excel 文件中的单独工作表。

    你可以这样使用:

    import pandas as pd
    file_name = # you excel file name you're saving
    dfs = # my list of dataframes
    for i, df in enumerate(dfs):
        df.to_excel(file_name, sheetname='Sheet_{0}'.format(i))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2021-09-04
      • 2016-11-25
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多