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

Odpovedet emailem