Konvertierung von Dezimaltrennzeichen

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
BlackJack

@tine_beginner: Das Du keine Fehlermeldung bekommst kann nicht sein:

Code: Alles auswählen

In [1]: open(['a', 'b'])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-9a8631965ac0> in <module>()
----> 1 open(['a', 'b'])

TypeError: coercing to Unicode: need string or buffer, list found
`open()` mag als erstes Argument offenbar keine Liste. Was klar sein sollte wenn man sich die Dokumentation zu `open()` und Dateiobjekten durchliest und die entsprechenden Abschnitte im Python-Tutorial in der Python-Dokumentation durchgearbeitet hat.

Was `glob.glob()` für einen Rückgabewert hat (Typ/Wert) kannst Du doch ganz einfach überprüfen in dem Du Dir Typ und Wert von `alle` ausgeben lässt. Für ersteres gibt es die `type()`-Funktion.

Ich denke Du musst einfach erst einmal ein bisschen Zeit in Python-Grundlagen investieren. Ich würde mal sagen Funktionen selber schreiben und Generatorfunktionen und -ausdrücke kann man hier sehr gut gebrauchen. Und die Werkzeuge aus dem `itertools`-Modul sollten auch zum Grundwissen gehören.

Damit könntest Du Dir dann eine Funktion schreiben welche die Zeilen von allen Dateien deren Name als Liste übergeben wurde abzüglich der jeweils ersten neun Zeilen, nacheinander liefert. Damit kann man dann die `numpy.genfromtxt()` füttern um alle Dateien in ein grosses Array einzulesen.

Dabei könnte es natürlich passieren das die Datenmenge zu gross ist. Dann könnte man die Werte für die jeweiligen Einzeldateien berechnen und in einem Array speichern und dann zum Schluss diese aggregierten Werte noch einmal verrechnen.
tine_beginner
User
Beiträge: 21
Registriert: Sonntag 7. Juni 2015, 14:47

@BlackJack: danke für deine Anmerkungen! Klingt erstmal deprimierend aber das ist auf jeden Fall schon mal was. Da es wirklich sehr viele Daten sind, werde ich denke ich versuchen, die Werte der einzelnen Dateien jeweils zu berechnen und dann mit einander zu verrechnen.

Das ganze klingt so simpel, aber naja.

D.h. es wäre in etwa sowas:

Code: Alles auswählen

import numpy as np
import glob
import matplotlib as plt

# alle Daten im Datensatz ansprechen
alle = glob.glob('*.csv')

for f in alle:
    with open(f) as data:
        b = np.genfromtxt((line.replace(',', '.') for line in data), skip_header=9, delimiter=";")
    
    print b.shape

    print np.nanmax(b),np.nanmin(b),np.nanstd(b),np.nanvar(b),np.nanmean(b)
Damit bekomme ich alle max, min, usw. Werte :) (Glücksgefühl). Diese könnte ich dann ja einfach wie Du schriebst in einem Array speichern und mir ein Gesamtergebnis ausgeben lassen. Wahnsinn! :D Ich bedanke mich nochmal! Ich versuche mal weiter und würde mich nochmal melden.
Antworten