Resampling-trade-Daten in OHLCV mit pandas
Habe ich historische Daten über den Handel in ein pandas DataFrame, mit Preis und Volumen Spalten, indiziert durch eine DateTimeIndex.
Beispiel:
>>> print df.tail()
price volume
2014-01-15 14:29:54+00:00 949.975 0.01
2014-01-15 14:29:59+00:00 941.370 0.01
2014-01-15 14:30:17+00:00 949.975 0.01
2014-01-15 14:30:24+00:00 941.370 0.01
2014-01-15 14:30:36+00:00 949.975 0.01
Nun, ich kann resample dies in die OHLC-Daten mit df.resample(freq, how={'price': 'ohlc'})
, was in Ordnung ist, aber ich würde auch gerne mal die Lautstärke.
Wenn ich versuche df.resample(freq, how={'price': 'ohlc', 'volume': 'sum'})
ich bekommen:
ValueError: Shape of passed values is (2,), indices imply (2, 95)
Ich bin mir nicht ganz sicher, was falsch ist mit meinem dataset, oder warum dies nicht gelingt. Könnte mir jemand helfen, etwas Licht in diese Schuppen? Sehr geschätzt wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist nicht die resampling, es ist aus versuchen, concat ein MultiIndex (vom Preis OHLC), mit einem regulären index (für die Volumen-Summe).
Ich denke, man könnte manuell einen MultiIndex für
(volume, sum)
und dann concat:Aber es könnte besser sein, wenn resample umgehen konnte dies automatisch.
df.resample('30S').agg({'price': 'ohlc', 'volume': 'sum'})
).Können Sie jetzt tun, dies in späteren Versionen der Pandas
Beispiel: Pandas version 0.22.00
df.resample('30S').mean()