Dobrý den,
mám 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é.
Fórum › Python
Pandas to excel bez přepsání původních hodnot
Dá se to udělat tak, že ten soubor nejdříve celý načteš a pak při zápisu určíš počáteční řádek.
from openpyxl import load_workbook
...
with pd.ExcelWriter('exekuce.xlsx', engine='openpyxl') as writer:
try:
writer.book = load_workbook('exekuce.xlsx')
writer.sheets = {ws.title: ws for ws in writer.book.worksheets}
except FileNotFoundError:
pass
sheet_name = 'Nákup'
startrow = writer.book[sheet_name].max_row if sheet_name in writer.book.sheetnames else 0
exe_bot.to_excel(writer, sheet_name=sheet_name, startrow=startrow)
sheet_name = 'Prodej'
startrow = writer.book[sheet_name].max_row if sheet_name in writer.book.sheetnames else 0
exe_sld.to_excel(writer, sheet_name=sheet_name, startrow=startrow)
Jestli nemáš openpyxl, tak ho můžeš nainstalovat pipem.
pip3 install openpyxl
#2 gna
Děkuji moc, funguje!
Akorát se také vždy přidá nové záhlaví tabulky, ale to už je detail, s kterým dokážu žít
Díky!
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 14 hostů
Podobná vlákna
EXCEL - přepsání určité oblasti buněk výsledkem vzorce — založil Martin4800
Python pandas copywarning — založil dawid294
Používáte SQLAlchemy nebo pandas? pymysql — založil oxidián
Nacitani hodnot z txt do pole,vyhledavani a vypis hodnot — založil JiriVavru
Zobrazení duplicit bez seskupení ( bez GROUP BY) — založil pidgin
Moderátoři diskuze