У меня есть следующий тип df
:
Date_time Col1
0 2023-03-04 10:30:00 10
1 2023-03-04 10:30:00 11
2 2023-03-04 10:30:00 21
3 2023-03-04 10:30:00 54
4 2023-03-04 10:30:00 12
5 2023-03-04 10:30:00 13
6 2023-03-04 10:30:00 21
...
58 2023-03-04 10:30:00 22
59 2023-03-04 10:30:00 21
60 2023-03-04 10:31:00 25
61 2023-03-04 10:31:00 21
...
По какой-то причине секунды отображаются 0
во всем df
, однако на самом деле они должны быть увеличены на 1
секунды.
Я хотел бы добавить 1
секундное приращение к Date_time
столбцу и продолжать увеличивать до 59
секунд, а затем сбрасывать его по мере изменения минуты. Пожалуйста, смотрите ниже желаемый результат.
Date_time Col1
0 2023-03-04 10:30:00 10
1 2023-03-04 10:30:01 11
2 2023-03-04 10:30:02 21
3 2023-03-04 10:30:03 54
4 2023-03-04 10:30:04 12
5 2023-03-04 10:30:05 13
6 2023-03-04 10:30:06 21
....
58 2023-03-04 10:30:58 22
59 2023-03-04 10:30:59 21
60 2023-03-04 10:31:00 25
61 2023-03-04 10:31:01 21
...
Используйте groupby.cumcount и TimedeltaIndex:
df['Date_time'] = pd.to_datetime(df['Date_time'])
df['Date_time'] += pd.TimedeltaIndex(df.groupby('Date_time').cumcount(), unit='s')
Выход:
Date_time Col1
0 2023-03-04 10:30:00 10
1 2023-03-04 10:30:01 11
2 2023-03-04 10:30:02 21
3 2023-03-04 10:30:03 54
4 2023-03-04 10:30:04 12
5 2023-03-04 10:30:05 13
6 2023-03-04 10:30:06 21
...
58 2023-03-04 10:30:58 22
59 2023-03-04 10:30:59 21
60 2023-03-04 10:31:00 25
61 2023-03-04 10:31:01 21