Запись данных Pandas, а также массивов в общий файл Excel - PullRequest
0 голосов
/ 10 июня 2018

Используя Python 3.6 и Pandas 0.22, я создал фрейм данных pandas IRdaily с временными рядами ежедневных изменений различных процентных ставок.Я легко могу записать кадр данных Pandas в Excel, используя команды:

writer = pd.ExcelWriter(outFileName)
IRdaily.to_excel(writer, 'Daily Changes')

Но если я теперь вычислю разложение по собственным значениям (и вектор собственных значений, и матрица собственных векторов являются пустыми символами) и попытаюсь записать ихк тому же рабочему листу я получаю сообщение об ошибке:

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

1 Ответ

0 голосов
/ 11 июня 2018

Во-первых, обратите внимание, что to_excel является методом для DataFrame, поэтому не должно быть слишком удивительным, что он завершается неудачно при вызове на np.ndarray.

ОтносительноНа самом деле это довольно окольный способ, но, поскольку у вас уже есть настроенный pd.ExcelWriter, я бы предложил просто превратить два массива в DataFrame с, вместо этого сделать что-то, что составляет

pd.DataFrame(eigValD).to_excel(writer, 'Daily Changes', startcol=15, header=False, index=False)

Более прямой способ - использовать xlsxwriter напрямую.

...