使用Python 3.6和Pandas 0.22我创建了一个pandas数据帧IRdaily
,其中包含各种利率的每日变化的时间序列。我可以使用以下命令轻松地将Pandas数据帧写入Excel:
writer = pd.ExcelWriter(outFileName)
IRdaily.to_excel(writer, 'Daily Changes')
但如果我现在计算特征值分解(特征值向量和特征向量矩阵都是numpy ndarrays)并尝试将它们写入同一工作表我会得到一个错误:
covD = deltaIRdaily.cov()
eigValD, eigVecD = np.linalg.eigh(covD)
eigValD.to_excel(writer, 'Daily Changes', startcol = 15)
eigVecD.to_excel(writer, 'Daily Changes', startrow = 15, startcol = 15)
Traceback (most recent call last):
File "c:\Documents\Python\FedInterestRateDataExtract.py", line 58, in <module>
eigValD.to_excel(writer, 'Daily Changes', startcol = 15)
AttributeError: 'numpy.ndarray' object has no attribute 'to_excel'
如何将ndarrays写入打开的工作簿中现有工作表中的指定行和列?它正在使用Pandas数据帧正确完成,因此我猜测必须有一种简单的方法来编写Pandas数据帧中保存的数据的任何分析结果。
非常感谢您的建议和帮助
Thomas Philips
答案 0 :(得分:3)
首先,请注意to_excel
是DataFrame
上的一种方法,因此在np.ndarray
上调用时失败并不会太令人惊讶。
关于实际问题,这是一种相当迂回的方式,但由于你已经设置了pd.ExcelWriter
,我建议只需将两个数组转换为DataFrame
s,而是做一些事情。相当于
pd.DataFrame(eigValD).to_excel(writer, 'Daily Changes', startcol=15, header=False, index=False)
更直接的方法是直接使用xlsxwriter
。