Konvertierung von Dezimaltrennzeichen
Verfasst: Sonntag 7. Juni 2015, 15:08
Hallo zusammen,
ich bin neu hier im Forum und habe mich angemeldet, weil ich als python-Neuling etwas Hilfe benötige.
Ich hoffe, sämtliche vorab zusamengetragenen Reglen nun beachtet zu haben
Habe mich im Forum durchgeklickt, aber keine passende Lösung für mein Anliegen gefunden.
Ich habe Datensätze von mehreren Tausend CSV-Dateien. In den Datensätzen sind jeweils in 640 Spalten und 480 Zeilen nur Temperaturangaben abgespeichert, allerdings mit Komma-Dezimaltrennung (statt -4.56 1.37 liefern die Datensätze mir -4,56 1,37). Klang für mich zunächst nach einer einfachen Sache. Ich möchte die Datensätze verwenden, um zahlreiche statistische Auswertungen durchzuführen und in Grafiken darzustellen (Mittelwerte, Standardabweichung, etc.). Das ganze funktioniert natürlich nur, wenn mein eingeladener Datentyp ein float-Typ ist. Lade ich die Datei ein, erhalte ich auch die Angabe, dass die Daten von Typ "float64" sind, allerdings wird mir unter Value nur angezeigt:
[[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
...,
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]]
Der Datensatz wird also nicht als float erkannt, wegen des Komma-Dezimaltrenners.
Da es sehr viele Datensätze sind, benötige ich eine wenig rechenintensive Variante.
Mein Code sieht erstmal in etwa wie folgt aus:
Könnt ihr mir dabei helfen, welche Funktion ich wie auf den Datensatz anwenden kann, damit die Daten in der Tabelle auch wirklich als float-Datentyp konvertiert werden? Ich arbeite in Spyder (Python 2.7). Ich weiß, dass es Möglichkeiten wie
gibt, allerdings funktioniert das ganze bei mir irgendwie nicht. Kurz und knapp: ich will einfach alle Kommata im Datensatz durch Punkte ersetzen.
Ich bin euch um jede Hilfe dankbar!
Tine
ich bin neu hier im Forum und habe mich angemeldet, weil ich als python-Neuling etwas Hilfe benötige.
Ich hoffe, sämtliche vorab zusamengetragenen Reglen nun beachtet zu haben

Ich habe Datensätze von mehreren Tausend CSV-Dateien. In den Datensätzen sind jeweils in 640 Spalten und 480 Zeilen nur Temperaturangaben abgespeichert, allerdings mit Komma-Dezimaltrennung (statt -4.56 1.37 liefern die Datensätze mir -4,56 1,37). Klang für mich zunächst nach einer einfachen Sache. Ich möchte die Datensätze verwenden, um zahlreiche statistische Auswertungen durchzuführen und in Grafiken darzustellen (Mittelwerte, Standardabweichung, etc.). Das ganze funktioniert natürlich nur, wenn mein eingeladener Datentyp ein float-Typ ist. Lade ich die Datei ein, erhalte ich auch die Angabe, dass die Daten von Typ "float64" sind, allerdings wird mir unter Value nur angezeigt:
[[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
...,
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]]
Der Datensatz wird also nicht als float erkannt, wegen des Komma-Dezimaltrenners.
Da es sehr viele Datensätze sind, benötige ich eine wenig rechenintensive Variante.
Mein Code sieht erstmal in etwa wie folgt aus:
Code: Alles auswählen
# Importieren von Modulen
import numpy
# Setzen des Dateinamens mit Pfad
a = 'C:/BartSimpson/temperaturen.csv'
# Einlesen der Daten in eine Variable
b = numpy.genfromtxt(a,skip_header=9,delimiter=";")
# Die Dimensionen der Daten ausgeben
print b.shape
Code: Alles auswählen
value = value.replace(',','.')
Ich bin euch um jede Hilfe dankbar!
Tine