我是python的新手。我看过以前的线程,例如this和this。我有这样创建的一系列日期和时间:
tp1=[]
for f in files: ### files is the variable that has all the files I need to read in this loop
t=f[-19:-5] ### these characters in the filename correspond to the date and time
tp1.append(datetime.strptime(t,"%Y%m%d%H%M%S"))
time_p1_cr=pd.to_datetime(pd.Series(tp1), format='%Y-%m-%d %H:%M:%S')
tp1看起来像:
[datetime.datetime(2018, 8, 1, 16, 6, 39),
datetime.datetime(2018, 8, 2, 17, 16, 37),
datetime.datetime(2018, 8, 3, 10, 53, 46),
datetime.datetime(2018, 8, 3, 17, 14, 39),
datetime.datetime(2018, 8, 4, 11, 21, 36),
datetime.datetime(2018, 8, 4, 17, 27, 54),
,依此类推。 time_p1_cr看起来像:
0 2018-08-01 16:06:39
1 2018-08-02 17:16:37
2 2018-08-03 10:53:46
3 2018-08-03 17:14:39
,依此类推。我需要找到列表元素之间的连续差异。我基本上需要时差。我做不到
t2=tp1[1:]
t3=tp1[:-1]
t4=t3-t2
因为t2和t3是列表,所以我不能减去列表。
所以,我尝试了
test1=time_p1_cr[1:]
test2=time_p1_cr[:-1]
test3=test1.subtract(test2)
根据this。 但是test3原来是
test3
0 NaT
1 0 days
2 0 days
3 0 days
4 0 days
5 0 days
6 0 days
7 0 days
,依此类推。如何获得连续元素之间的时间差?
答案 0 :(得分:0)
您可以使用列表推导来执行此操作。例如:
differences = [t2 - t1 for t1,t2 in zip(time_p1_cr[:-1], time_p1_cr[1:])]
这将为您提供datetime.timedelta
的列表。