计算DateTimeIndex的时差

Mar*_*ker 12 pandas

我想计算DateTimeIndex中时间之间的时差

import pandas as pd
p = pd.DatetimeIndex(['1985-11-14', '1985-11-28', '1985-12-14', '1985-12-28'], dtype='datetime64[ns]')
Run Code Online (Sandbox Code Playgroud)

我可以计算两次的时差:

p[1] - p[0]
Run Code Online (Sandbox Code Playgroud)

Timedelta('14 days 00:00:00')
Run Code Online (Sandbox Code Playgroud)

但是p [1:] - p [: - 1]不起作用并给出

DatetimeIndex(['1985-12-28'], dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

和未来的警告:

FutureWarning: using '-' to provide set differences with datetimelike Indexes is deprecated, use .difference()
Run Code Online (Sandbox Code Playgroud)

有关如何(轻松)计算DateTimeIndex中值之间的时差的任何想法?为什么它适用于1个值,但不适用于整个DateTimeIndex?

EdC*_*ica 15

转换DatetimeIndexSeries使用to_series()然后调用diff以计算行间差异:

In [5]:
p.to_series().diff()

Out[5]:
1985-11-14       NaT
1985-11-28   14 days
1985-12-14   16 days
1985-12-28   14 days
dtype: timedelta64[ns]
Run Code Online (Sandbox Code Playgroud)

至于它失败的原因,-这里的算子试图执行你的不同索引范围的设定差异或交集,你试图从一个范围中减去另一个范围的值diff.

当你做p[1]- p[0]-被进行标量减法但是当你做这个指数它认为你是执行一组操作