24-го часа нет. Часть времени datetime в pandas существует в диапазоне [00:00:00, 24:00:00)
, что гарантирует, что существует только одно представление одного и того же точного времени. (Обратите внимание на закрытие).
import pandas as pd
pd.to_datetime('2012-01-01 24:00:00')
#ParserError: hour must be in 0..23: 2012-01-01 24:00:00
Для второй точки с pd.__version__ == '1.1.0'
вы можете указать параметр offset
при передискретизации. Вы также можете указать, какую сторону использовать для этикеток. Для более старых версий вам нужно будет использовать аргумент base
.
# pandas < 1.1.0
#input1.resample('12H', on='datetime', base=6).count()
input1.resample('12H', on='datetime', offset='6H').count()
# datetime
#datetime
#2017-12-31 18:00:00 6
#2018-01-01 06:00:00 12
#2018-01-01 18:00:00 12
#2018-01-02 06:00:00 12
#2018-01-02 18:00:00 6
# Change labels
input1.resample('12H', on='datetime', offset='6H', label='right').count()
# datetime
#datetime
#2018-01-01 06:00:00 6
#2018-01-01 18:00:00 12
#2018-01-02 06:00:00 12
#2018-01-02 18:00:00 12
#2018-01-03 06:00:00 6