我正在尝试将Excel writer对象传递给函数以编写具有相同结果(每天,每周和每月的频率)的变体,但是似乎没有任何内容写在函数中。
我首先创建一个Excel writer对象:
writer = pd.ExcelWriter(outfn)
IRdaily.to_excel(writer, 'Interest Rates')
writer.save()
到目前为止,一切都很好-这就像一种魅力,利率表也可以得到。现在,我将结果以及writer对象传递给一个函数,该函数定义如下:
def writeResults(writer, DailyWeeklyMonthly, deltaIR):
pd.DataFrame([DailyWeeklyMonthly + ' Changes in Interest Rates']).to_excel(writer, DailyWeeklyMonthly + ' Changes', startrow = 0, startcol=0, header=False, index=False)
deltaIR.to_excel(writer,DailyWeeklyMonthly + ' Changes', startrow = 1)
writer.save()
我用粗略的技巧来编写文本字符串,即从该字符串创建一个数据帧(pd.DataFrame([DailyWeeklyMonthly +'利率的变化'])),然后将其写入编写者反对的工作表中的适当位置需要创建。
如果我按以下方式调用此函数
writeResults(writer, 'Daily', deltaIRDaily)
什么都没写-工作表“每日更改”甚至都没有创建。但是,如果我不将编写器传递给writeResults函数,而是编写
writer = pd.ExcelWriter(outfn)
IRdaily.to_excel(writer, 'Interest Rates')
pd.DataFrame(['Daily Changes in Interest Rates']).to_excel(writer, 'Daily Changes', startrow = 0, startcol=0, header=False, index=False)
deltaIR.to_excel(writer,'Daily Changes', startrow = 1)
writer.save()
代码工作正常!将writer对象传递给writeResults函数时,我在做什么错?我这样做是为了用几行代码就能以各种频率(每天,每周,每月)编写结果。
预先感谢您的协助
托马斯·飞利浦