Pandas to excel bez přepsání původních hodnot – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pandas to excel bez přepsání původních hodnot – Python – Fórum – Programujte.comPandas to excel bez přepsání původních hodnot – Python – Fórum – Programujte.com

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Swarm23
~ Anonymní uživatel
3 příspěvky
22. 5. 2019   #1
-
0
-

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é. 

Nahlásit jako SPAM
IP: 78.108.109.–
gna
~ Anonymní uživatel
916 příspěvků
22. 5. 2019   #2
-
0
-

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
Nahlásit jako SPAM
IP: 213.211.51.–
Swarm23
~ Anonymní uživatel
3 příspěvky
23. 5. 2019   #3
-
0
-

#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   

Připojen obrázek.

Díky!

Nahlásit jako SPAM
IP: 78.108.109.–
gna
~ Anonymní uživatel
916 příspěvků
23. 5. 2019   #4
-
0
-

To jde taky ovlivnit parametrem té funkce. 

startrow = ...
header = startrow == 0  # hlavicku jen na prvnim radku
to_excel(..., header=header)
Nahlásit jako SPAM
IP: 213.211.51.–
Swarm23
~ Anonymní uživatel
3 příspěvky
24. 5. 2019   #5
-
0
-

#4 gna
Nejvíc díky!   

Nahlásit jako SPAM
IP: 78.108.109.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 47 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý