Python 如何从固定时间中减去datetime列?
我有一个数据帧列,其值范围为12:00到00:00(分:秒格式),我试图从固定的12:00时间(分:秒格式)中减去该列的值。我创建了一个变量:Python 如何从固定时间中减去datetime列?,python,pandas,datetime,Python,Pandas,Datetime,我有一个数据帧列,其值范围为12:00到00:00(分:秒格式),我试图从固定的12:00时间(分:秒格式)中减去该列的值。我创建了一个变量: twelve_mins = pd.to_datetime('12:00', format='%M:%S') 当我试图创建一列“剩余时间”时,我得到了错误: unsupported operand type(s) for -: 'Timestamp' and 'datetime.time' 我该怎么做才能找到“剩余时间”值?我要从中减去的列已设置为d
twelve_mins = pd.to_datetime('12:00', format='%M:%S')
当我试图创建一列“剩余时间”时,我得到了错误:
unsupported operand type(s) for -: 'Timestamp' and 'datetime.time'
我该怎么做才能找到“剩余时间”值?我要从中减去的列已设置为datetime格式:
pbp['time_left_in_period'] = pd.to_datetime(pbp['time_left_in_period'], format='%M:%S').dt.time
以下是我的数据的玩具选择:
idx time_left_in_period
0 00:11:44
1 00:11:44
2 00:11:27
3 00:11:27
4 00:11:23
5 00:11:21
6 00:11:18
7 00:11:02
8 00:10:59
9 00:10:51
10 00:10:51
11 00:10:51
12 00:10:48
13 00:10:48
14 00:10:32
15 00:10:32
16 00:10:21
17 00:10:21
18 00:10:05
19 00:09:56
您可以使用datetime.timedelta() 结果是:
time_left_in_period remaining_time
0 00:11:44 00:00:16
1 00:11:44 00:00:16
2 00:11:27 00:00:33
3 00:11:27 00:00:33
4 00:11:23 00:00:37
5 00:11:21 00:00:39
6 00:11:18 00:00:42
7 00:11:02 00:00:58
8 00:10:59 00:01:01
9 00:10:51 00:01:09
10 00:10:51 00:01:09
11 00:10:51 00:01:09
12 00:10:48 00:01:12
13 00:10:48 00:01:12
14 00:10:32 00:01:28
15 00:10:32 00:01:28
16 00:10:21 00:01:39
17 00:10:21 00:01:39
18 00:10:05 00:01:55
19 00:09:56 00:02:04
是否有任何方法可以应用df.diff()方法来查找剩余时间值之间的持续时间?就像第0行是00:00:16(00:00:16-00:00:00),第1行是00:00:00(00:00:16-00:00:16),第2行是00:00:17(00:00:33-00:00:16),依此类推?可以将列设置为diff。比如df['remaining_time']=df['remaining_time']。diff(period=1)
time_left_in_period remaining_time
0 00:11:44 00:00:16
1 00:11:44 00:00:16
2 00:11:27 00:00:33
3 00:11:27 00:00:33
4 00:11:23 00:00:37
5 00:11:21 00:00:39
6 00:11:18 00:00:42
7 00:11:02 00:00:58
8 00:10:59 00:01:01
9 00:10:51 00:01:09
10 00:10:51 00:01:09
11 00:10:51 00:01:09
12 00:10:48 00:01:12
13 00:10:48 00:01:12
14 00:10:32 00:01:28
15 00:10:32 00:01:28
16 00:10:21 00:01:39
17 00:10:21 00:01:39
18 00:10:05 00:01:55
19 00:09:56 00:02:04