Hallo zusammen,
ich hab gerade folgendes Problem. Ich hab mehrere Files mit Rohdaten in einem Ordner, zum Beispiel 3 Files. Die Rohdaten sehen wie folgt aus:
Nun möchte ich die 3 Files einlesen (zum Beispiel in eine Liste?), so dass alle 3 Listen die gleiche Anzahl Elemente haben. Wenn man die 3 Rohdaten-Files anders darstellt, ergeben sich quasi folgende Lücken, welche aufgefüllt werden müssten:
Und die Lücken sollen nun so aufgeüllt werden, dass bei einem fehlenden Datensatz der vorherige Wert eingetragen wird. Also fehlt z.B. bei File 2 der 25.02.2019, dann soll hierfür der Wert vom 24.02.2019 genommen werden. Sollte bei einem File der aller erste Wert fehlen, soll hier eine 0 eingetragen werden. Der finale Datensatz geht dann vom frühesten Datum aller Files (hier aus File 2 der 24.02.) bis zum spätesten Datum aller Files (hier aus File 1 oder 3 der 29.03.)
Kann mir jemand helfen?
Gruss
Daten in Listen synchronisieren
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@winnitouch: Schau Dir mal das `pandas`-Modul an.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Code: Alles auswählen
import pandas as pd
import numpy as np
# erzeugen der Datums Spalte
index = pd.date_range(start='24.02.2019', periods=34, freq='D')
# erzeugen der 3 Rohdaten Dateien
liste_1 = pd.DataFrame(data={'Datum': index, 'Roh1': np.random.randint(2000, 9000, 34)})
liste_2 = pd.DataFrame(data={'Datum': index, 'Roh2': np.random.randint(2000, 9000, 34)})
liste_3 = pd.DataFrame(data={'Datum': index, 'Roh3': np.random.randint(2000, 9000, 34)})
# löschen der jeweiligen fehlenden Daten
liste_1.drop(index=[0, 32], axis=0, inplace=True)
liste_2.drop(index=[1, 2, 5, 11, 19, 33], axis=0, inplace=True)
liste_3.drop(index=[0, 3, 4, 10, 13, 21, 22], axis=0, inplace=True)
# mergen der Listen OHNE auffüllen der fehlenden Werte
df = pd.merge_ordered(liste_1, liste_2, on='Datum', how='outer')
df = pd.merge_ordered(df, liste_3, on='Datum', how='outer')
print(df)
# mergen der Listen MIT auffüllen der fehlenden Werte
df = pd.merge_ordered(liste_1, liste_2, on='Datum', how='outer', fill_method='ffill')
df = pd.merge_ordered(df, liste_3, on='Datum', how='outer', fill_method='ffill')
print(df)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
-
- User
- Beiträge: 21
- Registriert: Montag 25. März 2019, 22:33
wow, vielen Dank für Deine Hilfe, werde ich ausprobieren!