CSV Datei bearbeiten

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.
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

Einfach gleich Excel-Dateuen schreiben:

Code: Alles auswählen

tickers_hist5.to_excel('e:/Python/Analysetool/Testordner/Rohdaten.xlsx')
Gottimperator
User
Beiträge: 9
Registriert: Samstag 11. Januar 2025, 16:08

Tatsächlich hat es mit dem Semikolon geklappt und ich habe jetzt endlich die ganzen Werte auf die einzelnen Zellen verteilt. (Gibt es eine Petition die ich unterschreiben kann, damit das amerikanischen Excel und das deutschen Excel genormt werden? Das hat das zumindest für mich doch sehr verklompliziert).
Ich möchte mich bei euch allen für die Hilfe und Geduld bedanken die ihr hier an den Tag gelegt habt. Vielen Dank. Ich habe bei meinem kleinen Projekt noch sehr viel zu tun und da ich wirklich keine Ahnung von dem habe was ich hier tue werde ich in Zukunft immer mal wieder (aus euer Sicht vermutlich blöde) Fragen stellen :).
Das hier ist der Code der am Ende rausgekommen ist:

input_path = 'e://Python//Analysetool//Testordner//Rohdaten.csv'
output_path = 'e://Python//Analysetool//Testordner//Aufbereitet.csv'

with open(input_path, 'r', newline='', encoding='utf-8') as infile:
reader = csv.reader(infile, delimiter=';')
rows = list(reader)

bereinigte_werte = []

for row in rows:
neue_zeile = []
for zelle in row:
try:
if '.' in zelle:
zelle = str(float(zelle))
except ValueError:
pass

geteilte_werte = zelle.split(',')
neue_zeile.extend(geteilte_werte)
bereinigte_werte.append(neue_zeile)

print("Bereinigte extrahierte Werte:")
for row in bereinigte_werte:
print(row)

with open(output_path, 'w', newline='', encoding='utf-8') as outfile:
writer = csv.writer(outfile, delimiter=';')
writer.writerows(bereinigte_werte)

Gibt noch einiges zu tun wie die Dezimaltrennung zu überarbeiten und das sortieren aber daran versuche ich mich erstmal selbst bis ich nicht mehr weiterkomme.
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

Korrekt wäre, dir Daten von Anfang an in einem Format zu speichern, das weniger Interpretationsspielraum lässt. Nachträglich die mit Komma separierten Felder erst am Semikolon zu trennen, dann nur das erste Feld zu nehmen, in der Hoffnung, dass in den Ursprungsdaten kein Semikolon war, um sie dann händisch nochmal an Kommata zu trennen und das ganze wieder zu speichern, sollte jedem klar sein, dass das nicht richtig sein kann. Das Problem mit Dezimalpunkt und -komma noch gar nicht thematisiert.
Benutzeravatar
noisefloor
User
Beiträge: 4172
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Gibt es eine Petition die ich unterschreiben kann, damit das amerikanischen Excel und das deutschen Excel genormt werden? Das hat das zumindest für mich doch sehr verklompliziert
Denkfehler deinerseits: Excel ist _nicht_ das Problem. Du kannst ohne Probleme eine auf einem amerikanischen Computer erstellte xlsx-Datei mit Zahlen mit Nachkommastellen auf deinem deutschen Excel öffnen und das wird alles korrekt dargestellt, also Komma als Dezimaltrenner statt Punkt. Das "Problem" ist nach wie vor deine CSV-Datei. Und, BTW, das Problem hättest du auch so unter LO oder Numbers oder ... gehabt.

Gruß, noisefloor
Antworten