Я хотел бы сделать преобразование для данных, которые включают формат timedelta.
Мои данные выглядят так со столбцом Time как тип timedelta.
user in out location overlap Time
0 ron 12/21/2021 10:11 12/21/2016 17:50 home 0 4:19:03
1 ron 12/21/2016 13:26 12/21/2016 13:52 office 2 0:25:28
2 april 12/21/2016 8:12 12/21/2016 17:27 office 0 8:15:03
3 april 12/21/2016 18:54 12/21/2016 22:56 office 0 4:02:36
4 andy 12/21/2016 8:57 12/21/2016 12:15 home 0 2:59:40
В зависимости от пользователя и перекрытия, я хотел бы выполнить преобразование на «Time». Я сделал это:
groups = sample.groupby('user')['Time']
flag = sample.groupby('user')['overlap'].transform('max')
sample.loc[:,'time_new'] = np.select([flag.eq(0), flag.isin([1,2])], [groups.transform('sum'), groups.transform('max')])
Но я получаю следующую ошибку:
TypeError: Cannot cast scalar from dtype('<m8[ns]') to dtype('<m8') according to the rule 'same_kind'
Как правильно выполнить преобразование?