假设:
ts = pd.to_datetime(['2014-01-08 08:00:42',
'2014-01-08 08:01:00',
'2014-01-08 08:01:12'])
是否有规定的方法来获得每个元素之间的timedelta(最好是total_seconds
属性)的结果?
我现在看起来过于冗长:
pd.Index((pd.Series(ts) - pd.Series(ts).shift())).total_seconds()
# Float64Index([nan, 18.0, 12.0], dtype='float64')
我并不关心结果数据结构类型,无论是列表,索引还是系列。
答案 0 :(得分:1)
您可以这样使用np.diff
。
np.diff(ts.values).astype(int) / 1E9
array([ 18., 12.])
或者
np.append(np.nan, np.diff(ts.values).astype(int) / 1E9)
array([ nan, 18., 12.])