我正在try 遍历数据框以提取特定值.我有一个循环来说明条件,但我无法避免索引器越界错误.
我的循环是:
new_end = []
for i in range(size):
if fifo.Same_New.iloc[i] == "New" and fifo.Same_New.iloc[i-1] == "New":
new_end.append(fifo.EndTime.iloc[i])
else:
if fifo.Same_New.iloc[i] == 'Same' and fifo.Same_New.iloc[i+1] =="New":
new_end.append(fifo.EndTime.iloc[i])
else:
new_end.append('Null')
示例df:
StartTime EndTime Dura Diff S/N
05/01/2024 12:27 05/01/2024 13:04 2224 1036 New
06/01/2024 07:05 06/01/2024 07:06 60 1081 New
06/01/2024 07:06 06/01/2024 07:06 0 0 Same
08/01/2024 10:26 08/01/2024 10:27 32 200 New
08/01/2024 11:45 08/01/2024 11:46 38 78 New
09/01/2024 13:48 09/01/2024 13:51 172 122 New
09/01/2024 16:41 09/01/2024 16:42 60 170 New
09/01/2024 16:43 09/01/2024 17:37 3267 1 Same
09/01/2024 17:38 09/01/2024 17:41 189 1 Same
10/01/2024 10:06 10/01/2024 10:08 142 985 New
10/01/2024 10:51 10/01/2024 10:53 116 43 New
10/01/2024 11:00 10/01/2024 11:00 26 7 New
12/01/2024 12:17 12/01/2024 12:30 752 77 New
15/01/2024 08:01 15/01/2024 08:01 36 1171 New
16/01/2024 15:44 16/01/2024 15:53 577 463 New
16/01/2024 16:43 16/01/2024 17:16 2003 50 New
16/01/2024 17:16 16/01/2024 17:17 69 0 Same
17/01/2024 00:03 17/01/2024 00:04 60 406 New
17/01/2024 00:04 17/01/2024 00:20 943 0 Same
17/01/2024 06:08 17/01/2024 06:09 16 348 New
其逻辑是:
- 如果您必须将第1行和第2行都在S/N列中具有相同的值,则从第1行返回EndTime值.示例如下:
05/01/2024 12:27 05/01/2024 13:04 2224 1036 New
06/01/2024 07:05 06/01/2024 07:06 60 1081 New
- 如果第1行的S/N列中有"New"值,第2行的S/N列中有"Same"值,则返回"".示例如下:
09/01/2024 16:41 09/01/2024 16:42 60 170 New
09/01/2024 16:43 09/01/2024 17:37 3267 1 Same
- 如果第一行在S/N列中具有"相同"值,而第二行在S/N列中具有"相同"值,则返回"空".示例如下:
09/01/2024 16:43 09/01/2024 17:37 3267 1 Same
09/01/2024 17:38 09/01/2024 17:41 189 1 Same
- 如果第一行在S/N列中的值相同,而第二行在S/N列中的值为新的,则返回第一行的结束时间值.示例如下:
16/01/2024 17:16 16/01/2024 17:17 69 0 Same
17/01/2024 00:03 17/01/2024 00:04 60 406 New
预期输出将是具有以下值的附加列:
StartTime EndTime Dura Diff S/N N_E
05/01/2024 12:27 05/01/2024 13:04 2224 1036 New 05/01/2024 13:04
06/01/2024 07:05 06/01/2024 07:06 60 1081 New Null
06/01/2024 07:06 06/01/2024 07:06 0 0 Same 06/01/2024 07:06
08/01/2024 10:26 08/01/2024 10:27 32 200 New 08/01/2024 10:27
08/01/2024 11:45 08/01/2024 11:46 38 78 New 08/01/2024 11:46
09/01/2024 13:48 09/01/2024 13:51 172 122 New 09/01/2024 13:51
09/01/2024 16:41 09/01/2024 16:42 60 170 New Null
09/01/2024 16:43 09/01/2024 17:37 3267 1 Same Null
09/01/2024 17:38 09/01/2024 17:41 189 1 Same 09/01/2024 17:41
10/01/2024 10:06 10/01/2024 10:08 142 985 New 10/01/2024 10:08
10/01/2024 10:51 10/01/2024 10:53 116 43 New 10/01/2024 10:53
10/01/2024 11:00 10/01/2024 11:00 26 7 New 10/01/2024 11:00
12/01/2024 12:17 12/01/2024 12:30 752 77 New 12/01/2024 12:30
15/01/2024 08:01 15/01/2024 08:01 36 1171 New 15/01/2024 08:01
16/01/2024 15:44 16/01/2024 15:53 577 463 New 16/01/2024 15:53
16/01/2024 16:43 16/01/2024 17:16 2003 50 New Null
16/01/2024 17:16 16/01/2024 17:17 69 0 Same 16/01/2024 17:17
17/01/2024 00:03 17/01/2024 00:04 60 406 New Null
17/01/2024 00:04 17/01/2024 00:20 943 0 Same 17/01/2024 00:20
17/01/2024 06:08 17/01/2024 06:09 16 348 New 17/01/2024 06:09
17/01/2024 06:09 17/01/2024 06:10 30 0 Same Null
希望它能澄清这一点.很抱歉格式不好,这是我的第一篇帖子.
谢谢