pandas to_csv falsches Zahlenformat

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
vanKey
User
Beiträge: 18
Registriert: Mittwoch 31. August 2022, 07:14

Hallo zusammen,

ich versuche seit längerem, eine Zahl, die in einem pandas-Dataframe steht in eine csv-Datei zu schreiben (s. Minimalbeispiel unten).
Das Problem ist, dass sobald ich den index und den header als "False" setze, das Format in der csv-Datei nicht mehr stimmt.
Er gibt mir in der csv-Datei "1.123.456.789" aus, aber nicht "1.123456789". Kann mir hier jemand helfen?

VG
vanKey

Code: Alles auswählen

import numpy as np
import pandas as pd
import os
import math
import matplotlib.pyplot as plt

abc=pd.DataFrame([1.123456789])

abc.to_csv("abc.csv",index=False,header=False)

print(abc)
print(type(abc))
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Das Problem ist, dass Excel ein Schrottprogramm ist. Das erwartet je nach Ländereinstellung andere Zahlenformate, für die Deutsche Einstellung eben Kommazahlen mit Komma. Ein Punkt wird als Tausender-Trennzeichen interpretiert. Die CSV-Datei ist korrekt, das Laden in Excel ist das Problem.
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

im Zweifel mal versuchen die eigentliche csv-Datei als "abc.txt" zu speichern und diese *.txt-Datei in Excel zu laden bzw. mit Excel zu öffnen. Excel verhält unterschiedlich, je nach Endung der Datei (*.csv oder eben *.txt)
vanKey
User
Beiträge: 18
Registriert: Mittwoch 31. August 2022, 07:14

Ok top Danke für die Info :)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn die CSV-Datei für Excel bestimmt ist - warum schreibst du nicht direkt eine XLSX-Datei aus Pandas? Dann sollte das Problem in der Form nicht auftreten.

Gruß, noisefloor
Antworten