Выбирая одну дату за раз из преобразованного кадра данных - PullRequest
1 голос
/ 10 июля 2019

У меня есть фрейм данных тиков, который я пересчитал в мелкие данные.делать ваниль

df.resample('1Min').ohlc().fillna(method='ffill')

очень просто.

Теперь мне нужно перебирать этот измененный кадр данных каждый день, но я не могу найти лучший способ сделать это.

Я попытался взять мой 1-минутный преобразованный кадр данных, а затем пересчитать его для «1D», а затем преобразовать его в список для итерации и фильтрации, но это дает мне список:

Timestamp('2011-09-13 00:00:00', freq='D')

объектови это не позволит мне разрезать информационный фрейм, основываясь на этом.

кажется, что это было бы что-то легкое, но я просто не могу найти ответ.спасибо-

#sample data_1m dataframe
data_1m.head()


                     open  high  low  close
timestamp                                  
2011-09-13 13:53:00   5.8   6.0  5.8    6.0
2011-09-13 13:54:00   5.8   6.0  5.8    6.0
2011-09-13 13:55:00   5.8   6.0  5.8    6.0
2011-09-13 13:56:00   5.8   6.0  5.8    6.0
2011-09-13 13:57:00   5.8   6.0  5.8    6.0
...

#i want to get everything for date 2011-09-13 im trying

days_in_df = data_1m.resample('1D').ohlc().fillna(method='ffill').index.to_list()


data_1m.loc[days_in_df[0]]

KeyError: Timestamp('2011-09-13 00:00:00', freq='D')

1 Ответ

0 голосов
/ 11 июля 2019

Вот мои два цента.Я не пересматриваю данные, а добавляю еще один индексный уровень во фрейм:

data_1m = data_1m.reset_index()
data_1m['date'] = data_1m['timestamp'].astype('datetime64[D]')
data_1m = data_1m.set_index(['date', 'timestamp'])

И выбираю целый день:

data_1m.loc['2011-09-13']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...