Ich habe einen rohen Datenmenge, die wie folgt aussieht:Resampling und das Ausfüllen Pandas fehlenden Daten
df = pd.DataFrame({'speed': [66.8,67,67.1,70,69],
'time': ['2017-08-09T05:41:30.168Z', '2017-08-09T05:41:31.136Z', '2017-08-09T05:41:31.386Z', '2017-08-09T05:41:31.103Z','2017-08-09T05:41:35.563Z' ]})
ich es einige Verarbeitung tun könnte, um es dann aus (entfernt Mikrosekunden) aussehen:
df['time']= pd.to_datetime(df.time)
df['time'] = df['time'].apply(lambda x: x.replace(microsecond=0))
>>> df
speed time
0 66.8 2017-08-09 05:41:30
1 67.0 2017-08-09 05:41:31
2 67.1 2017-08-09 05:41:31
3 70.0 2017-08-09 05:41:31
4 69.0 2017-08-09 05:41:35
Ich muss jetzt die Daten neu berechnen, so dass alle Einträge, die zum selben Zeitstempel gekommen sind, zusammen gemittelt werden, und für die Zeitstempel, die keine Daten erhalten haben, verwende den letzten verfügbaren Wert. Like:
speed time
0 66.80 2017-08-09 05:41:30
1 68.03 2017-08-09 05:41:31
2 70.00 2017-08-09 05:41:32
3 70.00 2017-08-09 05:41:33
4 70.00 2017-08-09 05:41:34
5 69.00 2017-08-09 05:41:35
Ich verstehe dies die Verwendung von groupby und resample beinhalten könnte, aber da ein Anfänger ich mich mit diesen zu kämpfen finden. Irgendwelche Ideen zum weiteren Vorgehen?
Ich habe dies versucht, aber ich falschen Ergebnissen bin immer:
df.groupby([df["time"].dt.second]).mean()
speed
time
30 66.800000
31 68.033333
35 69.000000
ich 3 Stunden kämpfen mit diesem verbrachte. Ich kann nicht glauben, dass es so einfach ist. Vielen Dank! –
@AlP, froh, ich könnte helfen :) – MaxU