update von excel datei mit pandas

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
lacreature
User
Beiträge: 17
Registriert: Dienstag 5. März 2019, 23:34

moin zusammen, ich habe heute angefangen ein programm zu schreiben, welches die zeit an geschlafenen stunden pro tag annimmt einen graphen ausspuckt, der veranschaulicht, wie viel man in der Woche geschlafen hat.
noch dazu habe ich eine funktion eingebaut, in der die durchschnittliche schlafenszeit pro woche mit pandas in eine excel datei geschrieben wird mit der wochennummer um so eine übersicht über den schlaf zu bekommen.
hier der code der die datei schreibt:

Code: Alles auswählen

def sleepdata_tofile():
    week = input("woche im jahr: ")
    logtofile = pd.DataFrame({'Datum': [week],
                       'schlaf pro woche': [sleep_week]})
    writer = ExcelWriter('My_sleep.xlsx')
    df.to_excel(writer, 'Sheet1', index=False)
    writer.save()
    return
das funktioniert auch nur möchte ich dass man jedes mal einen neuen eintrag einfügt und die vorherigen einträge nicht gelöscht werden. wie bekomme ich das hin?
programmiere noch nicht so lange und komme nicht mehr weiter...würde mich also über tips freuen!
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lacreature: Das funktioniert ziemlich sicher nicht, weil `df` nicht definiert ist und `logtofile` nicht verwendet wird. Und wo kommt bitte `sleep_week` her? Alles was eine Funktion ausser Konstanten benötigt, sollte als Argument(e) übergeben werden, und nicht irgendwie ”magisch” aus der Umgebung kommen.

Warum der Umweg über einen `ExcelWriter`?

'Sheet1' ist bereits der Defaultname des Arbeitsblattes, das kann man sich also sparen.

`week` ist eine Zeichenkette – wie gibst Du denn die Woche an?

Das ``return`` am Ende ist überflüssig.

Wenn Du eine Exceldatei erweitern möchtest, müsstest Du sie beispielsweise in einen DataFrame einlesen, den erweitern, und dann wieder speichern. Wenn man auf der sicheren Seite sein möchte, schreibt man erst in eine temporäre Datei und benennt die nach dem schreiben dann um. So können keine Daten verloren gehen wenn das Programm während des Speicherns abbricht oder abgebrochen wird.

CSV-Dateien lassen sich einfach erweitern, weil man da einfach einen neuen Datensatz anhängen kann, ohne die Datei komplett lesen und wieder neu schreiben zu müssen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
lacreature
User
Beiträge: 17
Registriert: Dienstag 5. März 2019, 23:34

das ist nur ein kleiner teil, nicht der ganze code, deswegen vielleicht nicht wirklich nachvollziehbar. alles klar, dann versuche ich es mal mit einer csv datei statt excel...danke schonmal!
Antworten