Выберите одну строку по заданному времени и создайте новый DF, используя Pandas - PullRequest
1 голос
/ 22 октября 2019

My DF выглядит следующим образом:

date                  Open
2018-01-01 00:00:00   1.0536 
2018-01-01 00:01:00   1.0527 
2018-01-01 00:02:00   1.0558 
2018-01-01 00:03:00   1.0534 
2018-01-01 00:04:00   1.0524 

Вышеуказанное значение DF основано на minute. Я хочу создать новое значение DF2, основанное на day, выбрав значение single time из day.

Например, я хочу выбрать 02:00:00 каждый день тогда мой новый DF2 будет выглядеть так:

date                  Open
2018-01-01 02:00:00   1.0332 
2018-01-02 02:00:00   1.0423 
2018-01-03 02:00:00   1.0252 
2018-01-04 02:00:00   1.0135 
2018-01-05 02:00:00   1.0628
....

Теперь наш DF2 основан на day, а не minute

Чтоя сделал?

Я выбрал день этим dt методом.

df2 = df.groupby(df.date.dt.date,sort=False).Open.dt.hour.between(2, 2)

Однако он не работает.

1 Ответ

1 голос
/ 22 октября 2019
# Sample data.
np.random.seed(0)
df = pd.DataFrame({
    'date': pd.date_range('2019-01-01', '2019-01-10', freq='1Min'),
    'Open': 1 + np.random.randn(12961) / 100})

>>> df.loc[df['date'].dt.hour.eq(2) & df['date'].dt.minute.eq(0), :]
                     date      Open
120   2019-01-01 02:00:00  1.003764
1560  2019-01-02 02:00:00  1.015878
3000  2019-01-03 02:00:00  1.015933
4440  2019-01-04 02:00:00  0.990582
5880  2019-01-05 02:00:00  0.982440
7320  2019-01-06 02:00:00  1.012546
8760  2019-01-07 02:00:00  0.979695
10200 2019-01-08 02:00:00  1.013195
11640 2019-01-09 02:00:00  0.993046
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...