2024-09-27 21:34:34 发布
网友
我只是找不到答案,我知道熊猫吃这种问题的沙漠。在
我有一个datetime index,想知道它的长度,以年为单位:
datetime index
idx=pd.date_range('2011-07-03', '2015-07-10')
预期产量:
如果我这样做: idx[0]-idx[-1]我在days中得到一个输出,但我喜欢它的年数
idx[0]-idx[-1]
days
抱歉:找不到panads文档
panads
使用ptp和np.timedelta64:
ptp
np.timedelta64
>>> idx.to_series().ptp() / np.timedelta64(1, 'Y') 4.019247486259129
如果您希望它更具体(一直到天)并获得Timedelta对象,请不要分割:
Timedelta
如果date_range总是排序的,那么使用to_series和{}会增加不必要的复杂性,并且可以使用@jezrael's answer的一部分
date_range
to_series
>>> (idx[-1] - idx[0]) / np.timedelta64(1, 'Y') 4.019247486259129
如果不需要100%精度,可以将timedelta转换为天,然后除以365.25精度:
100%
365.25
idx=pd.date_range('2011-07-03', '2015-07-10') print ((idx[-1]-idx[0]).days / 365.25) 4.0191649555099245
但如果需要years和{}s:
year
您还可以使用relativedelta,如下所示:
from dateutil.relativedelta import relativedelta relativedelta(idx[0], idx[-1]).years
确保最晚的日期是第一个参数。在
使用
ptp
和np.timedelta64
:如果您希望它更具体(一直到天)并获得
^{pr2}$Timedelta
对象,请不要分割:如果}会增加不必要的复杂性,并且可以使用@jezrael's answer的一部分
date_range
总是排序的,那么使用to_series
和{如果不需要
100%
精度,可以将timedelta转换为天,然后除以365.25
精度:但如果需要}s:
^{pr2}$year
s和{您还可以使用relativedelta,如下所示:
确保最晚的日期是第一个参数。在
相关问题 更多 >
编程相关推荐