У меня есть случай пользователя, что мне всегда нужен календарь без скачка, какой бы ни был год високосного года или нет. Я хочу построить 6-часовой список DATETIME за 2000 год, например:Как создать список невидимых дат-дней в python?
import datetime
import pandas as pa
tdelta = datetime.timedelta(hours=6)
dt = datetime.datetime(2000,1,1,0,)
ts = [dt+i*tdelta for i in range(1460)]
pa.DatetimeIndex(ts)
С помощью этого блока кода, я получаю результат:
DatetimeIndex(['2000-01-01 00:00:00', '2000-01-01 06:00:00',
'2000-01-01 12:00:00', '2000-01-01 18:00:00',
'2000-01-02 00:00:00', '2000-01-02 06:00:00',
'2000-01-02 12:00:00', '2000-01-02 18:00:00',
'2000-01-03 00:00:00', '2000-01-03 06:00:00',
...
'2000-12-28 12:00:00', '2000-12-28 18:00:00',
'2000-12-29 00:00:00', '2000-12-29 06:00:00',
'2000-12-29 12:00:00', '2000-12-29 18:00:00',
'2000-12-30 00:00:00', '2000-12-30 06:00:00',
'2000-12-30 12:00:00', '2000-12-30 18:00:00'],
dtype='datetime64[ns]', length=1460, freq=None, tz=None)
Однако я хочу Февральский иметь 28 дней, и, таким образом, последний элемент вывода должен быть «2000-12-31 18:00:00», есть ли способ сделать это с помощью python? Благодаря!!
Я надеюсь, что они не хотят, день недели для данной даты в этом странном расположении. Если нет, вы всегда можете использовать не високосный год, который начинается в тот же день недели, что и 2000. –
как вы хотите использовать список позже? Каков контекст? Даже если вы создадите список со смежными '2000-02-28 18: 00: 00',' 2000-03-01 00: 00: 00' записей; разница составляет более 24 часов, если вы используете тип данных datetime64 [ns] '. Большинство библиотек, работающих с датами в Python, принимают пролептивный григорианский календарь. Вероятно, вам следует избегать типа 'datetime', если вам нужен не-григорианский календарь, иначе вы должны бороться с ним на каждом шаге, чтобы получить желаемые результаты в вашем случае. – jfs