Не могу добавить python Dataframe в Excel - PullRequest
1 голос
/ 07 мая 2020
from openpyxl import load_workbook
from openpyxl import workbook
import yfinance as yf
import datetime as datetime
from datetime import datetime as dt
import openpyxl
import pandas as pd
import numpy as np
wb = openpyxl.load_workbook(filename = 'test.xlsx')
xlslist=[]
sheetlist=list(wb.sheetnames)
for x in wb['Main']["A":"A"]:
    if x.value.isupper():
        xlslist.append(x.value) # add ticker symbols which are written in uppercase into list 
writer=pd.ExcelWriter("test.xlsx")
for y in xlslist:
    print(y)
    if y in sheetlist: 
        worksheet=wb[y]
        info=pd.DataFrame(yf.Ticker(y).history(start="2000-02-02",end=dt.now()))
        print(info)
        with pd.ExcelWriter("test.xlsx",engine='openpyxl') as writer:
            info.to_excel(writer,sheet_name=y)
    elif y not in sheetlist:
        wb.create_sheet(y)
        worksheet=wb[y]
        yf.Ticker(y).history(start="2000-02-02",end=dt.now())
        print(info)
        with pd.ExcelWriter("test.xlsx",engine='openpyxl') as writer:
            info.to_excel(writer,sheet_name=y)
wb.save('test.xlsx')

Начало с файла Excel с именем test.xlsx, с одним рабочим листом с именем «Main». Намерение состоит в том, чтобы увидеть, какие тикеры записаны на основном листе, создать новый лист с каждым листом, символ тикера с историческими значениями, напечатанными на листе

Но фрейм данных не копируется в файл Excel, и более того, главный рабочий лист удаляется и заменяется только одним листом с одним тикером, тогда как он должен показывать четыре листа с каждым листом с именем каждого из четырех тикеров

Может ли кто-нибудь помочь с этой проблемой? Я новичок в программировании, поэтому, пожалуйста, простите меня, если я написал довольно плохой код.

...