Daten aus mehreren Dateien plotten

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
masterkey
User
Beiträge: 2
Registriert: Dienstag 2. Februar 2021, 13:58

Hallo,

ich habe einen Ordner in dem mehrere txt-Dateien mit Messdaten sind. Die Anzahl der Dateien kann dabei variieren. Diese möchte ich einlesen und Daten mit z.b. Matplotlib plotten. Mein Problem ist, dass ich nicht weiß wie ich mehrere Dateien einlesen kann und diese dann in einem Dataset unterbringe um damit arbeiten zu können.

Die Dateien schauen z.b. so aus:

Dateiname: ID_32_Machine_2_Date_03_07_2020_Time_10_10_45.txt

In der Datei steht dann mit Tapstop getrennt:


Time Temperature Pressure
03.07.2020 10:09:41,830 6 16,5
03.07.2020 10:09:41,991 6,2 16,6
03.07.2020 10:09:42,110 6,3 16,7
...



die zweite Datei z.B. so:

Dateiname: ID_34_Machine_4_Date_04_07_2020_Time_12_09_30.txt

In der Datei steht:

Time Temperature Pressure Distance
04.07.2020 12:08:39,829 8 14,1 50
04.07.2020 12:08:39,987 8,7 14,5 20
04.07.2020 12:08:40,115 8,8 14,9 40
...


Ein weiteres Problem ist, dass im Dateinamen noch Informationen stehen, die ebenfalls mit in das Dataset rein müssen:
  • Die ID ist eine einmalig in der Datebank vergebene Nummer die für jede Messung eins höher gezählt wird.
  • Die Machine, damit ich später nach Daten einer bestimmten machine Filtern kann
  • Date and Time sind erstmal nicht wichtig.

Ich will dann später z.B. ein Diagramm plotten bei dem z.B. die Temperatur von Machine 2 und 4 über der Zeit dargestellt wird.
Kann mir hier jemand helfen und mir zeigen wie ich das bewerkstelligen kann?

Viele Grüße

masterkey
Benutzeravatar
__blackjack__
User
Beiträge: 13088
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@masterkey: Wo ist denn das konkrete Problem? Grundsätzlich teilt man Probleme in kleinere Teilprobleme auf, solange bis die einzelnen Teilprobleme jeweils mit einer Funktion mit wenigen Zeilen Code gelöst werden können. Die Funktionen schreibt und testet man dann. Eine nach der anderen, und erst mit der nächsten weitermachen wenn die aktuell geschriebene getestet ist und macht was sie soll. Am Ende hat man dann eine Gesamtlösung.

Dein Vorhaben mehrere Dateien zu einem Dataframe zusammenzufassen, lässt sich aufteilen in das laden einer einzelnen Datei über ihren Namen, und einer Funktion die mehrere Namen bekommt und die Funktion für das laden einer Datei für jeden Namen aufruft, und dann die einzelnen Dataframes zu einem zusammenfasst.

Aus dem Problem „laden *einer* Datei als DataFrame“ könnte man beispielsweise das Teilproblem „Informationen aus Dateinamen auslesen“ herausziehen. Dabei könnte das `re`-Modul nützlich sein.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
masterkey
User
Beiträge: 2
Registriert: Dienstag 2. Februar 2021, 13:58

Danke _blackjack_ für deine schnelle Antwort. Du hast recht, ich sollte das in kleine Häppchen packen.

Dann wäre das erste Problem, dass ich eine Datei mit dem Namen ID_32_Machine_2_Date_03_07_2020_Time_10_10_45.txt einlesen möchte. In der Datei steht

Time Temperature Pressure
03.07.2020 10:09:41,830 6 16,5
03.07.2020 10:09:41,991 6,2 16,6
03.07.2020 10:09:42,110 6,3 16,7

Es soll später möglich sein nach ID oder Maschinennummer zu filtern. Diese Daten sollen also aus dem Dateinamen mit in das Dataframe. Wie mache ich das am besten? Zwei Spalten erzeugen und diese dann mit der ID und der Maschinennummer befüllen? Wie würde das gehen?

Zum einfachen einlesen der Datei wäre ich so vorgegangen:

Code: Alles auswählen

import pandas as pd

filePath = "C:\\Software\\Python\\read_data\\ID_32_Machine_2_Date_03_07_2020_Time_10_10_45.txt"
df = pd.read_csv(
    filepath_or_buffer = filePath, 
    header = 0,
    sep=" ",
    #decimal = ",",
)

print(df)
Antworten