У меня есть DataFrame
с индексом datetime
и ценой. Мне нужны данные ohlc. (открытый, высокий, низкий, закрытый)Pandas: Получить данные ohlc для каждой строки
Я хочу переделать этот информационный кадр на заданную частоту в каждой строке.
frame.resample('60S', how = 'ohlc')
работает, но теперь индексы dataframe расположены на расстоянии 60 секунд друг от друга. Я хочу пересменить каждую строку из предыдущих строк в 60-х. (12, если индексы 5s друг от друга). Таким образом, у меня могут быть значения ohlc для каждой строки исходного фрейма.
Я не думаю, что я хочу сделать с df.resample
, но возможно с .agg
или .map
?
Как получить данные ohlc для каждые строка?
n = 10000
prices = np.linspace(100.0, 103.0, n) + np.random.normal(0.0, 0.3, n)
f = pd.DataFrame({'price': prices}, index = pd.date_range(end = datetime.utcnow(), freq = '5S', periods = n))
ohlcized = f.resample('60S', how = 'ohlc') # resampling doesnt work (834 != 10000)
len(ohlcized) # 834
len(f) # 10000
if len(ohlcized) == len(f):
print "question answered"
Могли бы вы предоставить некоторые данные? – Alexander
Готово. Если вам нужно, чтобы я уточнил больше, я могу. Проблема заключается в том, что повторная выборка удаляет строки. Я хочу сохранить все данные и просто выполнить операцию «ohlc» в каждой строке за последние 60 секунд данных. –