У меня есть этот фрейм данных. Я хочу сравнить дату, а затем рассчитать разницу во времени в эту дату. Например, date[0] == date[1] имеет значение True, тогда time[0] — time[1]. Если есть 4 записи даты, например 19 мая 2020, выполните (время[2] - время[3]) + (время[4] - время[5]). Но если количество записей даты нечетное, например, для 2022-05-12 есть только 3 записи, то ничего не делайте.
Date Time
0 2022-05-20 17:07:00
1 2022-05-20 09:14:00
2 2022-05-19 18:56:00
3 2022-05-19 13:53:00
4 2022-05-19 13:52:00
5 2022-05-19 09:34:00
6 2022-05-18 18:25:00
7 2022-05-18 12:53:00
8 2022-05-18 12:02:00
9 2022-05-18 10:01:00
10 2022-05-17 18:06:00
11 2022-05-17 12:23:00
12 2022-05-17 12:11:00
13 2022-05-17 09:57:00
14 2022-05-16 18:44:00
15 2022-05-16 09:57:00
16 2022-05-13 18:21:00
17 2022-05-13 12:42:00
18 2022-05-13 12:05:00
19 2022-05-13 10:02:00
20 2022-05-12 18:13:00
21 2022-05-12 13:06:00
22 2022-05-12 09:45:00
23 2022-05-11 18:04:00
24 2022-05-11 12:23:00
25 2022-05-11 11:59:00
26 2022-05-11 10:01:00
27 2022-05-10 17:33:00
28 2022-05-10 12:29:00
Я пробовал использовать вложенный цикл for, но не смог выяснить, как меняется индексация при появлении нечетных записей.
for i in range(len(df.Date)-1):
for j in range(1,len(df.Date),2):
if df.Date == df.Date[j]:
print(df.Date, df.Date[j],df.Time,df.Time[j])
i += 2
else:
print(i,j)
print(df.Date, df.Date[j],df.Time,df.Time[j])
i = j
j = j+1
print(i,j)
break
У меня есть этот фрейм данных. Я хочу сравнить дату, а затем рассчитать разницу во времени в эту дату. Например, date[0] == date[1] имеет значение True, тогда time[0] — time[1]. Если есть 4 записи даты, например 19 мая 2020, выполните (время[2] - время[3]) + (время[4] - время[5]). Но если количество записей даты нечетное, например, для 2022-05-12 есть только 3 записи, то ничего не делайте. Date Time 0 2022-05-20 17:07:00 1 2022-05-20 09:14:00 2 2022-05-19 18:56:00 3 2022-05-19 13:53:00 4 2022-05-19 13:52:00 5 2022-05-19 09:34:00 6 2022-05-18 18:25:00 7 2022-05-18 12:53:00 8 2022-05-18 12:02:00 9 2022-05-18 10:01:00 10 2022-05-17 18:06:00 11 2022-05-17 12:23:00 12 2022-05-17 12:11:00 13 2022-05-17 09:57:00 14 2022-05-16 18:44:00 15 2022-05-16 09:57:00 16 2022-05-13 18:21:00 17 2022-05-13 12:42:00 18 2022-05-13 12:05:00 19 2022-05-13 10:02:00 20 2022-05-12 18:13:00 21 2022-05-12 13:06:00 22 2022-05-12 09:45:00 23 2022-05-11 18:04:00 24 2022-05-11 12:23:00 25 2022-05-11 11:59:00 26 2022-05-11 10:01:00 27 2022-05-10 17:33:00 28 2022-05-10 12:29:00
Я пробовал использовать вложенный цикл for, но не смог выяснить, как меняется индексация при появлении нечетных записей. for i in range(len(df.Date)-1): for j in range(1,len(df.Date),2): if df.Date[i] == df.Date[j]: print(df.Date[i], df.Date[j],df.Time[i],df.Time[j]) i += 2 else: print(i,j) print(df.Date[i], df.Date[j],df.Time[i],df.Time[j]) i = j j = j+1 print(i,j) break