CSV zu EXCEL macht in Excel Probleme

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Hallo,

ich habe einen kleinen 2 Zeiler in Python geschrieben, der ein Dataframe erzeugt und diesen in eine XLSX "packen" soll.
Die Quelle ist eine CSV, was an dieser Stelle womöglich uninteressant ist.

Mein Problem ist nun, dass Excel Datei nach jedem Export fehlerhaft oder kaputt zu sein scheint.
Ich muss jedes mal die Daten wieder herstellen.
Hängt das mit Python oder Pandas zusammen?

Gruß
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Solange du uns den 2-Zeiler vorenthälst, wird das niemand beantworten können.

So bleibt nur zu sagen: Es liegt wohl an deinem Code.
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Hallo,

from pandas import ExcelWriter
import pandas as pd

df = pd.read_csv("C:/PFADGEÄNDERT/Report.csv",delimiter=";", encoding='ISO-8859-1',low_memory=False)
df.to_excel("C:/C:/PFADGEÄNDERT/Report.xlsx",index=False)

Hätte ich natürlich auch selber drauf kommen können, dass der Code wichtig sein könnte. :)
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Maternus: Was bedeutet denn „kaputt zu sein scheint“? Denn mal abgesehen davon, dass Du beim schreiben den Laufwerksbuchstaben doppelt im Pfad stehen hast, sieht das soweit richtig aus. Und die Struktur und die Kodierung von der CSV-Datei muss zum einlesen mit Pandas passen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Zuerst einmal kommt bei diesem Code eine ganz andere Fehlermeldung, nämlich dass 'C:/C:/PFADGEÄNDERT/Report.xlsx' kein gültiger Dateiname ist.

Was ist denn "fehlerhaft" oder "kaputt" an der Exceltabelle? Wird der Dataframe denn richtig gelesen?
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Sorry ich habe den Pfad verändert um die Daten zu schützen bzw. mich :)
Der Fehler entsteht nach Durchlauf des Codes an der Stelle, wo Excel die Liste öffnen möchte.

"Wir haben ein Problem in einigen Inhalten in XY erkannt. Sollen wir so viel wie möglich wieder herstellen?"

Gruß
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Maternus: Da kann man jetzt nicht wirklich was zu sagen. Das kann an der CSV-Datei liegen, das kann an Pandas liegen, das kann an Excel liegen. Oder an einer beliebigen Kombination davon. Und natürlich jeweils an den Versionen der beteiligten Komponenten.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Kannst Du die Daten soweit reduzieren, dass nur noch die Zellen im Dataframe sind, die den Fehler produzieren und diesen Dataframe dann hier posten?
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Hallo,

habe die Verursacher gefunden. In den Zellen stehen Einträge wie =BGF.
Das findet Pandas offensichtlich nicht so gut. Jetzt muss ich also noch die "=" loswerden.

Danke schon Mal
Buchfink
User
Beiträge: 193
Registriert: Samstag 11. September 2021, 10:16

@Maternus
mir kommt die Meldung bekannt vor. Die kommt aus Excel.
Ich würde die mal googeln. Wenn ich mich recht entsinne, hatte das entweder mit dem Schreibschutz zu tun oder mit irgendwelchen Sonderzeichen im Excel.

Kann es sein, dass deine erste Zelle mit "ID" beginnt?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast Strings, die in Excel als Formel interpretiert werden. Das mußt Du beim Schreiben der Excel-Tabelle auschalten:

Code: Alles auswählen

with pd.ExcelWriter(filename, engine="xlsxwriter", options={"strings_to_formulas":False}) as writer:
    df.to_excel(writer, index=False)
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Danke Euch für die wirklich guten Antworten.
Die von Sirius passt glaube ich am besten. Damit würde ich dann ja jeglichen Sonderzeichen aus dem Weg gehen.

Danke
Antworten