Хранить только строки данных, где дата - целый час - PullRequest
1 голос
/ 27 марта 2020

У меня есть фрейм данных с интервалами в 15 м

stock fullname open high low close volume date 0 AAPL Apple Inc. 206.3940 206.5050 206.0100 206.3040 2242259.0 2019-09-03 09:45:00 1 AAPL Apple Inc. 206.3200 206.9500 206.2960 206.6900 1094447.0 2019-09-03 10:00:00 2 AAPL Apple Inc. 206.6700 206.6700 204.3800 204.4200 1837739.0 2019-09-03 10:15:00 3 AAPL Apple Inc. 204.4282 205.0963 204.4156 204.8282 1199631.0 2019-09-03 10:30:00 4 AAPL Apple Inc. 204.8174 205.4500 204.5300 205.1924 959709.0 2019-09-03 10:45:00

Вопрос в том, как сохранить только строки целого часа? (например, 2019-09-03 10:00:00)

Ответы [ 2 ]

2 голосов
/ 27 марта 2020

Давайте попробуем

df1 = df[df['date'].dt.strftime('%M:%S').eq('00:00')].copy()
1 голос
/ 27 марта 2020

Первой идеей является проверка, если минуты и секунды равны 0:

df['date'] = pd.to_datetime(df['date'])

df1 = df[df['date'].dt.minute.eq(0) & df['date'].dt.second.eq(0)]

Или сравните Series.dt.floor по часам по исходному столбцу:

df1 = df[df['date'].dt.floor('H').eq(df['date'])]
print (df1)
  stock    fullname    open    high      low   close     volume  \
1  AAPL  Apple Inc.  206.32  206.95  206.296  206.69  1094447.0   

                 date  
1 2019-09-03 10:00:00  
...