CSV lesen mit europäischem Zahlenformat in Anführungszeichen

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
Rafii1
User
Beiträge: 3
Registriert: Samstag 25. April 2020, 11:01

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...
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Rafii1
User
Beiträge: 3
Registriert: Samstag 25. April 2020, 11:01

@__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?
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Rafii1
User
Beiträge: 3
Registriert: Samstag 25. April 2020, 11:01

Bild


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

https://imgur.com/a/a0OWkpH
Antworten