python - 遍历日期列表并计算每个间隔之间的天数
问题描述
如果已经问过这个问题,我很抱歉,但我无法为我的问题找到可行的解决方案。我想计算日期列表的每个间隔之间的日期数,看起来像
dates:
['06/02/2008', '07/01/2008', '10/12/2007', '05/11/2007', '09/10/2007', '10/09/2007',
'06/08/2007', '10/07/2007', '04/06/2007', '08/05/2007', '10/04/2007', '12/03/2007',
'05/02/2007', '08/01/2007', '11/12/2006', '06/11/2006', '10/10/2006', '05/09/2006',
'07/08/2006', '10/07/2006', '05/06/2006', '08/05/2006', '10/04/2006', '13/03/2006',
'06/02/2006', '09/01/2006', '05/12/2005', '07/11/2005', '11/10/2005', '06/09/2005',
'08/08/2005', '11/07/2005', '06/06/2005', '09/05/2005', '04/04/2005', '07/03/2005',
'09/02/2005']
我试图做类似 delta = dates - dates.shift(-1)
但没有成功的事情。我想得到的结果是一个名为 delta 的列表,如果我收集了每个间隔之间的天数。例如,第一个差异 '06/02/2008' - '07/01/2008' = 30 天。日期格式为 'dd/mm/yyyy'
谢谢你的帮助!
解决方案
您可以先转换to_datetime
,然后将所有没有第一个的值减去没有最后一个的所有值:
dates = pd.to_datetime(dates, format='%d/%m/%Y')
delta = dates[:-1] - dates[1:]
print (delta)
TimedeltaIndex(['30 days', '28 days', '35 days', '27 days', '29 days',
'35 days', '27 days', '36 days', '27 days', '28 days',
'29 days', '35 days', '28 days', '28 days', '35 days',
'27 days', '35 days', '29 days', '28 days', '35 days',
'28 days', '28 days', '28 days', '35 days', '28 days',
'35 days', '28 days', '27 days', '35 days', '29 days',
'28 days', '35 days', '28 days', '35 days', '28 days',
'26 days'],
dtype='timedelta64[ns]', freq=None)
如果需要整数添加TimedeltaIndex.days
:
delta = (dates[:-1] - dates[1:]).days
print (delta)
Int64Index([30, 28, 35, 27, 29, 35, 27, 36, 27, 28, 29, 35, 28, 28, 35, 27, 35,
29, 28, 35, 28, 28, 28, 35, 28, 35, 28, 27, 35, 29, 28, 35, 28, 35,
28, 26],
dtype='int64')
delta = (dates[:-1] - dates[1:]).days.tolist()
print (delta)
[30, 28, 35, 27, 29, 35, 27, 36, 27, 28, 29, 35, 28, 28, 35, 27, 35, 29, 28,
35, 28, 28, 28, 35, 28, 35, 28, 27, 35, 29, 28, 35, 28, 35, 28, 26]
推荐阅读
- c++ - 在构造错误中:“数据”未在此范围内声明
- android - 获取错误索引 0 请求,当想要选择时,android Sqlite 中的大小为 0
- javascript - 无法获取未定义或空引用的属性“d”
- typescript - TypeScript:将联合类型映射到另一个联合类型
- tcl - Tcl8.6.5 USE_TCL_STUBS tclDecls.h # undef Tcl_StaticPackage,
- python - 将 col 添加到 pd.df 并从第二个 df 查找值
- r - AR 中的测试和训练集分区问题
- python - 索引多级索引数据框
- python - scikit learn 中的预测和评分如何工作
- node.js - 使用jest和supertest测试koa2时Require返回一个空对象