У меня есть таблица этого формата:
date
0 2017-03-30 09:59:00
1 2017-03-30 09:59:30
2 2017-03-30 10:00:00
3 2017-03-30 10:00:30
4 2017-03-30 10:01:00
5 2017-03-30 10:01:30
6 2017-03-30 10:02:00
Что я хотел бы сделать, так это подсчитать дни в моей таблице (начиная с 1), а не начиная с полуночи, Я бы хотел, чтобы мои дни начинались в 10: 00: 00, Таким образом, для таблицы выше, результат будет:
date day
0 2017-03-30 09:59:00 0
1 2017-03-30 09:59:30 0
2 2017-03-30 10:00:00 1
3 2017-03-30 10:00:30 1
4 2017-03-30 10:01:00 1
5 2017-03-30 10:01:30 1
6 2017-03-30 10:02:00 1
Пока мне удалось создать новый столбец со следующим кодом:
d=1
hour_before = 10
col_days = []
for row in df.itertuples():
if row.date.hour == 10 and hour_before != 10 :
d+= 1
hour_before = row.date.hour
cols_days.append(d)
df['day'] = col_days
Но я бы хотел иметь более элегантный (и, что более важно, более быстрый) способ выполнить эту операцию.
Есть предложения?