Dne pondělí 20. května 2019 19:00:18 UTC+2 radek...@gmail.com napsal(a): > Dobrý den, > mám tady další velice (určitě pro vás) jednoduchý problém, s kterým se > nedokážu poprat. > > Mám napsaný skript, který mi každý den vypíše data a exportuje do .xlsx > souboru, kde filtruji do dvou sheets (BOT, SLD). > > Potřeboval bych, aby se další den hodnoty doplnily na nový řádek opět podle > filtru (BOT, SLD). Takhle se tabulka pokaždé přepíše. > > **************************************************************************** > # získání informace o vyplněných příkazech > > exekuce = (e for e in ib.fills() if e.contract.secType == "STK") > exekuce = > [(e.contract.symbol,e.time,e.execution.side,e.execution.shares,e.execution.avgPrice,e.execution.orderRef) > > for e in exekuce] > exe=pd.DataFrame(exekuce, columns=['symbol', > 'cas','smer','akcii','cena','ref']) > #exe['cas'] = pd.to_datetime(exe['cas'], format="%m/%d/%Y") > exe.set_index("symbol",inplace=True) > print(exe) > > # DataFrame si pro kontrolu vypíšeme > exe > > # Uložíme do excelu, zvlášť nákup a zvlášť prodej > exe_bot = exe[exe['smer']=='BOT'] > exe_sld = exe[exe['smer']=='SLD'] > > with pd.ExcelWriter('exekuce.xlsx') as writer: > exe_bot.to_excel(writer, sheet_name='Nákup') > exe_sld.to_excel(writer, sheet_name='Prodej') > > **************************************************************************** > > Děkuji za případnou pomoc. Předem upozorňuji, že jsem naprostý začátečník, > tak snad je to srozumitelné.
Ahoj. Nemám teď moc času, tak zkusím jen nastřelit možné řešení. Kdyby bylopotřeba více detailu, napiš a já doplním i s příklady. Řešením problému je to, že místo vytváření nového pd.DataFrame si načteš ten původní z .xlsx souboru, doplníš jej o nové řádky a pak jej stejně jako doposud uložíš zpět do .xlsx souboru. 1. Načteš existující .xlsx soubor do dvou DataFramů (pro každý list jeden) - na to je funkce read_excel https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html#pandas-read-excel 2. Ve svém programu si klidně stejně jako doposud vytvoříš dva nové DataFrame exe_bot, exe_std 3. Tyto nové hodnoty přidáš pomocí metody .append do DataFramů, které sis načetl v bodě 1 ze souboru https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html 4. Uložíš DataFrame obsahující spojené nové a staré hodnoty zpět do .xlsx souboru jako doposud. Jiné je v tom pro jednoduchost jen to, že si načtěš ze souboru staré hodnoty a před uložením je spojíš s novými hodnotami. Snad to alespoň trošku pomůže. Kdyby ne, dodám více detailů i s příklady. Lumír _______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz