Ist es irgendwie möglich, resample
auf unregelmäßigen Daten zu verwenden? (Ich weiß, dass die Dokumentation sagt, dass es für "Resampling von regulären Zeitreihendaten" ist, aber ich wollte versuchen, ob es auch an irregulären Daten arbeitet. Vielleicht tut es das nicht, oder vielleicht mache ich etwas falsch.)resample unregelmäßig verteilten Daten in Pandas
In meinen realen Daten habe ich im Allgemeinen 2 Proben pro Stunde, die Zeitdifferenz zwischen ihnen reicht normalerweise von 20 bis 40 Minuten. Also habe ich gehofft, sie zu einer regelmäßigen Stundenserie zu resampeln.
Um zu testen, ob ich es richtig verwende, habe ich eine zufällige Liste von Daten verwendet, die ich bereits hatte, also ist es vielleicht kein bestes Beispiel, aber zumindest eine Lösung, die dafür arbeitet, wird sehr robust sein. hier ist sie:
fraction number time
0 0.729797 0 2014-10-23 15:44:00
1 0.141084 1 2014-10-30 19:10:00
2 0.226900 2 2014-11-05 21:30:00
3 0.960937 3 2014-11-07 05:50:00
4 0.452835 4 2014-11-12 12:20:00
5 0.578495 5 2014-11-13 13:57:00
6 0.352142 6 2014-11-15 05:00:00
7 0.104814 7 2014-11-18 07:50:00
8 0.345633 8 2014-11-19 13:37:00
9 0.498004 9 2014-11-19 22:47:00
10 0.131665 10 2014-11-24 15:28:00
11 0.654018 11 2014-11-26 10:00:00
12 0.886092 12 2014-12-04 06:37:00
13 0.839767 13 2014-12-09 00:50:00
14 0.257997 14 2014-12-09 02:00:00
15 0.526350 15 2014-12-09 02:33:00
Jetzt möchte ich monatlich diese zum Beispiel sampeln:
df_new = df.set_index(pd.DatetimeIndex(df['time']))
df_new['fraction'] = df.fraction.resample('M',how='mean')
df_new['number'] = df.number.resample('M',how='mean')
Aber ich bekomme TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'
- es sei denn, ich etwas falsch mit Zuordnung des Datetime-Index hat, muss es aufgrund der sein Unregelmäßigkeit?
Also meine Fragen sind:
- Bin ich es richtig verwenden?
- Wenn 1 == True, gibt es keine einfache Möglichkeit, die Daten neu zu berechnen?
(Ich sehe nur eine Lösung in die Daten zuerst reindexing feinere Intervalle zu erhalten, die Werte zwischen interpolieren und dann zu stündlichen Intervall reindexing. Wenn es so ist, dann wird eine Frage in Bezug auf die korrekte Umsetzung der reindex in Kürze folgen.)
Pandas Version 0.18.1, Python 2.7 – durbachit