Seite 1 von 1

CSV lesen mit europäischem Zahlenformat in Anführungszeichen

Verfasst: Samstag 25. April 2020, 11:09
von Rafii1
Hi!

Ich möchte eine CSV Datei lesen, welche die folgenden Reihen hat:

24.04.2020,"92,41","92,26","93,60","91,95","9,55K","-1,40%"
23.04.2020,"93,72","93,22","94,60","92,16","12,44K","0,87%"
22.04.2020,"92,91","92,53","93,03","92,13","7,76K","1,55%"
21.04.2020,"91,49","93,94","93,94","91,48","33,06K","-4,10%"
20.04.2020,"95,40","95,18","95,48","93,22","27,09K","0,57%"

Wenn ich das über den normalen Code mache:

Code: Alles auswählen

import pandas as pd

data = pd.read_csv('test.csv', header = None)
Trennt er die einzelnen Einträge gar nicht mehr und Zeigt für die erste Spalte quasi jeweils die gesamte Reihe der CSV:

Code: Alles auswählen

                                                   0
0  24.04.2020,"92,41","92,26","93,60","91,95","9,...
1  23.04.2020,"93,72","93,22","94,60","92,16","12...
2  22.04.2020,"92,91","92,53","93,03","92,13","7,...
3  21.04.2020,"91,49","93,94","93,94","91,48","33...
4  20.04.2020,"95,40","95,18","95,48","93,22","27...
Ich möchte aber, dass er für jeden kommaseparierten Eintrag in jeder Zeile des CSV eine eigene Spalte erzeugt, also so:

Code: Alles auswählen

     0              1        2         3         4       ...
0  24.04.2020,  "92,41",  "92,26",  "93,60",  "91,95","9,...
1  23.04.2020,  "93,72",  "93,22",  "94,60",  "92,16","12...
2  22.04.2020,  "92,91",  "92,53",  "93,03",  "92,13","7,...
3  21.04.2020,  "91,49",  "93,94",  "93,94",  "91,48","33...
4  20.04.2020,  "95,40",  "95,18",  "95,48",  "93,22","27...

Re: CSV lesen mit europäischem Zahlenformat in Anführungszeichen

Verfasst: Samstag 25. April 2020, 12:40
von __blackjack__
@Rafii1: Das kann ich nicht nachvollziehen:

Code: Alles auswählen

In [91]: pd.read_csv("test.csv", header=None)                                   
Out[91]: 
            0      1      2      3      4       5       6
0  24.04.2020  92,41  92,26  93,60  91,95   9,55K  -1,40%
1  23.04.2020  93,72  93,22  94,60  92,16  12,44K   0,87%
2  22.04.2020  92,91  92,53  93,03  92,13   7,76K   1,55%
3  21.04.2020  91,49  93,94  93,94  91,48  33,06K  -4,10%
4  20.04.2020  95,40  95,18  95,48  93,22  27,09K   0,57%

In [92]: !cat test.csv                                                          
24.04.2020,"92,41","92,26","93,60","91,95","9,55K","-1,40%"
23.04.2020,"93,72","93,22","94,60","92,16","12,44K","0,87%"
22.04.2020,"92,91","92,53","93,03","92,13","7,76K","1,55%"
21.04.2020,"91,49","93,94","93,94","91,48","33,06K","-4,10%"
20.04.2020,"95,40","95,18","95,48","93,22","27,09K","0,57%"
Da muss man sich jetzt noch Umwandlungsfunktionen schreiben um tatsächlich Daten und Zahlen zu bekommen, aber das trennen funktioniert schon so.

Re: CSV lesen mit europäischem Zahlenformat in Anführungszeichen

Verfasst: Samstag 25. April 2020, 13:21
von Rafii1
@__blackjack__ danke für deine Antwort! Woran kann es liegen, dass Python bei mir anders vorgeht als bei dir? Hättes du da eine Idee?

Kann es daran liegen, dass ich SublimeText als Editor benutze?

Re: CSV lesen mit europäischem Zahlenformat in Anführungszeichen

Verfasst: Samstag 25. April 2020, 14:42
von __blackjack__
@Rafii1: Ich benutze auch SublimeText aber davon weiss Python nichts. Warum sich Dein Pandas nicht so verhält wie die Dokumentation das beschreibt kann ich mir nicht erklären. Ich glaube es auch nicht wirklich.

Re: CSV lesen mit europäischem Zahlenformat in Anführungszeichen

Verfasst: Samstag 25. April 2020, 15:20
von Rafii1
Bild


Hier schaut, ich kann mir das echt nicht erklären. Bin am verzweifeln.

https://imgur.com/a/a0OWkpH