Как перебрать несколько комбинаций в For L oop с помощью DateTimeStamp - PullRequest
0 голосов
/ 27 мая 2020

У меня есть DataFrame со значениями TimeStamp и целочисленными значениями, например A, B, InTime и Standard. Я ищу все комбинации с A, B и стандартным, где стандартное время не имеет дубликатов. Если обнаружены какие-либо дубликаты, их необходимо изменить с диапазоном 15 минут.

Входное изображение:

enter image description here

Входной образец:

    A   B   InTime               Standard
0   1   1   2020-05-21 09:00:00 2020-05-21 09:15:00
1   2   1   2020-05-21 09:00:00 2020-05-21 09:15:00
2   3   1   2020-05-21 09:00:00 2020-05-21 09:15:00
3   4   1   2020-05-21 09:00:00 2020-05-21 09:15:00
4   5   1   2020-05-21 10:00:00 2020-05-21 10:20:00
5   1   2   2020-05-21 10:00:00 2020-05-21 10:20:00
6   2   2   2020-05-21 10:00:00 2020-05-21 10:20:00
7   3   2   2020-05-21 11:15:00 2020-05-21 11:50:00
8   4   2   2020-05-21 11:15:00 2020-05-21 11:50:00
9   5   2   2020-05-21 11:15:00 2020-05-21 11:50:00
10  1   3   2020-05-21 12:15:00 2020-05-21 13:15:00
11  2   3   2020-05-21 12:15:00 2020-05-21 13:15:00
12  3   3   2020-05-21 12:15:00 2020-05-21 13:15:00
13  4   3   2020-05-21 13:30:00 2020-05-21 14:30:00
14  5   3   2020-05-21 13:30:00 2020-05-21 14:30:00

Ожидаемый результат: enter image description here

Код пробовал:

for each in data.A.unique():
    for t in data.B.unique():
        if data.Standard[t] == data.Standard[t+1]:

Заранее спасибо.

1 Ответ

1 голос
/ 27 мая 2020

Попробуйте следующее:

new_standard = []
for i, item in data.groupby("Standard"):
    temp_list = [item.iloc[0,3]]
    for j in range(1,item.shape[0]):
        temp_list.append(temp_list[j-1]+pd.Timedelta("15 m"))
    new_standard.extend(temp_list)

data["Standard"] = new_standard

Вывод:

    A   B   InTime              Standard
0   1   1   2020-05-21 09:00:00 2020-05-21 09:15:00
1   2   1   2020-05-21 09:00:00 2020-05-21 09:30:00
2   3   1   2020-05-21 09:00:00 2020-05-21 09:45:00
3   4   1   2020-05-21 09:00:00 2020-05-21 10:00:00
4   5   1   2020-05-21 10:00:00 2020-05-21 10:20:00
5   1   2   2020-05-21 10:00:00 2020-05-21 10:35:00
6   2   2   2020-05-21 10:00:00 2020-05-21 10:50:00
7   3   2   2020-05-21 11:15:00 2020-05-21 11:50:00
8   4   2   2020-05-21 11:15:00 2020-05-21 12:05:00
9   5   2   2020-05-21 11:15:00 2020-05-21 12:20:00
10  1   3   2020-05-21 12:15:00 2020-05-21 13:15:00
11  2   3   2020-05-21 12:15:00 2020-05-21 13:30:00
12  3   3   2020-05-21 12:15:00 2020-05-21 13:45:00
13  4   3   2020-05-21 13:30:00 2020-05-21 14:30:00
14  5   3   2020-05-21 13:30:00 2020-05-21 14:45:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...