我有一个for循环来计算DataFrame并将它们输出到excel表。现在,我可以将一个完整的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从'instrument'循环输出到excel表。我得到这个工作表:
但是我也希望在这种情况下导出另一个应该被称为“Price_Over_SMA50_D”的工作表。
不确定我做错了什么。
由于
答案 0 :(得分:0)
我发现这是一个将writer.save()
移到我的'MA'之外的for循环并在每次循环后重置DF的问题。
答案 1 :(得分:0)
使用Pandas,您可以将不同的数据帧保存到同一个excel文件的不同表中:
假设我有一个数据框 dfs 列表,我希望将其保存为excel文件中的单独工作表,其绝对路径为 file_name 。
您可以使用以下内容:
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))