如何创建多个 DatetimeIndex 对象的差异集 (pandas)?

How to create the difference set of several DatetimeIndex objects (pandas)?

我找不到另一个有完全相同问题的线程,所以我希望我不会打开太多相同的旧线程。

我刚开始学习使用 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

我希望上面的代码能给我给定点之间的日期范围减去以下范围的日期,但我被困在这里。有人可以解释一下吗?

使用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)