Как создать набор разностей нескольких объектов DatetimeIndex (pandas)? - PullRequest
0 голосов
/ 15 апреля 2020

Мне не удалось найти другую ветку с точно таким же вопросом, поэтому я надеюсь, что я не открываю слишком много того же самого старого.

Я только учусь работать с pandas и объекты даты и времени, и я пытаюсь создать большой объект DatetimeIndex с диапазоном дат, и после этого вычислить разницу, установленную между большим и несколькими меньшими, но здесь я сталкиваюсь с ошибкой:

range1 = pd.date_range(start="2015-01-01", end="2015-02-01")
range2 = pd.date_range(start="2015-01-03", end="2015-01-07")
range3 = pd.date_range(start="2015-01-13", end="2015-01-20")
range = range1 - range2 - range3
print(range)

ValueError: cannot add indices of unequal length

Я надеялся, что приведенный выше код даст мне диапазон дат между заданными точками минус даты следующих диапазонов, но я застрял здесь. Может кто-нибудь объяснить, пожалуйста?

1 Ответ

1 голос
/ 15 апреля 2020

Используйте Index.difference, также не используйте range как имя переменной, потому что встроенные функции (python кодовое слово):

range1 = pd.date_range(start="2015-01-01", end="2015-02-01")
range2 = pd.date_range(start="2015-01-03", end="2015-01-07")
range3 = pd.date_range(start="2015-01-13", end="2015-01-20")
r = range1.difference(range2).difference(range3)
print(r)
DatetimeIndex(['2015-01-01', '2015-01-02', '2015-01-08', '2015-01-09',
               '2015-01-10', '2015-01-11', '2015-01-12', '2015-01-21',
               '2015-01-22', '2015-01-23', '2015-01-24', '2015-01-25',
               '2015-01-26', '2015-01-27', '2015-01-28', '2015-01-29',
               '2015-01-30', '2015-01-31', '2015-02-01'],
              dtype='datetime64[ns]', freq=None)
...