Hier ist ein Beispiel der JSON-Daten:
Code: Select all
[{'timestamp': 1572430625231, 'url': 'brakePressure', 'value': 10},
{'timestamp': 1572430625275, 'url': 'lateralAcceleration', 'value': 120},
{'timestamp': 1572430625290, 'url': 'longitudinalAcceleration', 'value': 110},
{'timestamp': 1572430625299, 'url': 'acceleratorPosition', 'value': 1230},
{'timestamp': 1572430625310, 'url': 'currentTorque', 'value': 10}]
Mein Ziel ist es, die beiden Datensätze basierend auf dem Zeitstempel zusammenzuführen. Das ist so schwierig, weil ich hier im JSON einen Zeitstempel habe, der jedem einzelnen Merkmalswert zugeordnet ist, im Gegensatz dazu habe ich in den CSV-Daten einen Zeitstempel, der einer Zeile entspricht (das bedeutet n Merkmalswert und nicht einen einzelnen). Ich habe so viel versucht, aber keine Chance, also dachte ich, ich könnte vielleicht nach dem nächstgelegenen Zeitstempel suchen und dann jeweils einen einzelnen Wert ersetzen. Hier ist mein Versuch:
Code: Select all
def sync_vehicle_gps_data(dataset=vehicle_data, gps_data=gps_data):
vehicle = dataset.copy()
gps = gps_data.copy()
d = {}
for json in vehicle:
timestamp, feature, val = json.values()
index = abs(gps['timestamp'] - timestamp).idxmin()
print("closest value index = ", index)
gps.at[index, feature] = val
return gps
Die erwartete Ausgabe ist, dass ich diese Werte im JSON oben an den vorhandenen Datenrahmen anhängen kann, was in diesem Beispiel bedeutet, dass die neuen Spalten „brakePressure“, „lateralAcceleration“ usw. hinzugefügt werden und der Wert jedes Features (wie im JSON oben, ja, es sind Nullen, aber es ist nur ein Beispiel) in die Zeile eingefügt wird, in der die Der Zeitstempel dieser Zeile kommt dem Zeitstempel des Zeitstempelschlüssels jedes Features im obigen JSON am nächsten.
Hier ist ein Beispiel: Nehmen wir an, dies sind die GPS-Daten
Code: Select all
timestamp X Y Z
1572430510880 595.00 179.00 -60.00
1572430510890 -0.23 -0.09 0.01
1572430510900 -0.11 -0.02 0.04
1572430510910 -1.96 -5.19 -6.10
Code: Select all
timestamp X Y Z brakePressure
1572430510880 595.00 179.00 -60.00 10
1572430510890 -0.23 -0.09 0.01 nan
1572430510900 -0.11 -0.02 0.04 nan
1572430510910 -1.96 -5.19 -6.10 nan
Mobile version