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