CSV Werte mit Komma in Werte mit Punkt-trennung verwandeln

Max-Berater

Erfahrenes Mitglied
Ich habe seit heute das Problem, dass mein Skript, dass bis gestern tadellos CSV Listen und die darin enthaltenen Werte, die mit Komma getrennt waren, wie

18,81 oder 1330,50 zu 18.81 bzw. 1330.50 konvertiert hat.

Hierzu habe ich den Code

Code:
df = pd.read_csv("C:\\Users\\49152\\OneDrive\\FIBU\\EMP_convert\\EMP_final//EMP.csv", header=0, sep=";", skiprows=11,
decimal=",")
df.to_csv("C:\\Users\\49152\\OneDrive\\FIBU\\EMP4DB.csv", sep=";", index=1,
header=1)

verwendet.

Seit heute geht der Code leider nicht. Er läuft zwar durch, aber die Werte bleiben. Es wird kein Komm durch einen Punkt ersetzt.

Woran liegt das Problem. Habe nix verändert. Gestern lief alle wie geschmiert
 
Kenne die Sprache nicht. Aber beim to_csv gibst du nicht an, was das Dezmalzeichen sein soll.
Gibt es da ev. auch den Paramter decimal="." analog zum read_csv? Ansonsten nimmt es eventuell/wahrscheinlich das Dezimalzeichen aus der Ländereinstellung des Rechners auf dem das Skript läuft.
Sind alles nur Mutmassungen
 
Ich teste auch gerade wieder einmal. die Datei ist wie gehabt und es hat alles prima funktioniert, ab gestern auf einmal geht es einfach nicht mehr. Ich finde den Fehler einfach nicht. mit einer Testdatei geht es aber mit der benötigen Datei will es einfach nicht mehr laufen.

Ich werde gleich einmal den Code und Daten posten.
 
Was seltsam ist, ist, wenn ich die CSV, die ich konvertieren möchte öffne, um z. B. Daten unkenntlich zu machen und erneut abspeichere aber nichts an den Zahlenwerten ändere und dann erneut mit python konvertiere, geht alles wie gehabt. Nur die original Datei nimmt er nicht an, obwohl bis auf personenbezogene Daten hier nix geändert wurde.

Ich versuche gleich einmal die Rohdaten zu senden.
 
Hier die Daten die ich konvertieren möchte

Der Code

Code:
import pandas as pd

df = pd.read_csv("C:\\Users\\49152\\OneDrive\\FIBU\\EMP4-modDB.csv", header=0, sep=";", decimal=",")
df.to_csv("C:\\Users\\49152\\OneDrive\\FIBU\\EMP4DB-TEST.csv", sep=";")  # EMP4DB wird in DB EMP eingelesen
 

Anhänge

  • EMP4DB-ohne daten.txt
    1,2 KB · Aufrufe: 4
csv NIE über eine Tabellenverabreitung verändern und speichern. Dabei werden die csv-Formatierungen vom Tabellenverarbeitungsprogramm (Excel, Libre Office Calc, etc) verwendet.
Uns hats im Büro so mal alle Datums und Nummern umformatiert.
csv immer über reiner Texteditor verändern.

Nimm einfach mal eine Zeile der funktionierenden Testdatei und kopiere sie in einem Texteditor direkt unter eine Zeile die nicht funktioniert. Dann vergleichen. Das hilft mir meistens in solchen Fällen.
 
Ich lade die Daten herunter und lege diese einfach nur ab und lasse das Skript drüber laufen, dieses soll mir dann die Kommawerte in Punktwerte wandeln, damit ich diese in der Datenbank weiter verarbeiten kann.

In einer anderen Testdatei ändert er mir die Werte ab, so wie gewollt. Darum verstehe ich im Moment nicht, wo hier der Fehler liegt.

Das Ausgangsformat ist eine CSV mit Semikolonseparierung.

Ich versuche weiter einen Weg zu finden, das Problem zu lösen. Da in der CSV personenbezogene Daten liegen, kann ich diese hier nicht posten.
 
Zurück