Betrachten Sie einen Datenrahmen mit spärlichen temporalen Daten. Die Zeitstempel können sehr alt (z. B. vor Jahren) oder sehr neu sein.Effizientes Datensampling mit spärlichen Zeitstempeln für einen vordefinierten Datumsbereich
Als Beispiel wollen sie die folgenden Datenrahmen nehmen:
tstamp item_id budget
2016-07-01 14:56:51.882649 0Szr8SuNbY 5000.00
2016-07-20 14:57:23.856878 0Szr8SuNbY 5700.00
2016-07-17 16:32:27.838435 0Lzu1xOM87 303.51
2016-07-30 21:50:03.655102 0Lzu1xOM87 94.79
2016-08-01 14:56:31.081140 0HzuoujTsN 100.00
Sagen wir dieser Datenrahmen für jeden item_id
so zu resample müssen, dass wir einen dichten Datenrahmen erhalten, die einen Datenpunkt für jeden Tag für einen vordefinierten Zeitraum, mit einer Forward füllen.
Mit anderen Worten, wenn ich die oben für das Zeitintervall
pd.date_range(date(2016,7,15), date(2016,7,31)
Resampling soll ich:
date item_id budget
2016-07-15 0Szr8SuNbY 5000.00
2016-07-16 0Szr8SuNbY 5000.00
2016-07-17 0Szr8SuNbY 5000.00
...
2016-07-31 0Szr8SuNbY 5000.00
2016-07-15 0Lzu1xOM87 NaN
2016-07-16 0Lzu1xOM87 NaN
2016-07-17 0Lzu1xOM87 303.51
...
2016-07-31 0Lzu1xOM87 94.79
2016-07-15 0HzuoujTsN NaN
2016-07-16 0HzuoujTsN NaN
2016-07-17 0HzuoujTsN NaN
...
2016-07-31 0HzuoujTsN NaN
Beachten Sie, dass der ursprüngliche Datenrahmen enthält spärlich Zeitstempel und eine potenziell sehr hohe Zahl von einzigartigen item_id
s. Mit anderen Worten, ich hoffe, eine recheneffiziente Art der Resampling dieser Daten mit täglicher Häufigkeit auf einen vordefinierten Zeitraum der Betrachtung zu finden.
Was können wir am besten in Pandas, Numpy oder Python im Allgemeinen tun?
Sie können nun dieses Verzeichnis tun in 0.19 .0 (in Kürze); http://pandas-docs.github.io/pandas-docs-travis/whatsnew.html#whatsnew-0190-enhancements-rolling-ts und siehe verlinkte Dokumente – Jeff
Danke @Jeff! Ich kann die Version in 'Master' verwenden. Wie genau würden Sie dieses Problem mit 'rolling' lösen (oder eine andere Methode?) –