Добавьте значение столбца с другим столбцом даты и времени на уровне минут в pandas - PullRequest
1 голос
/ 03 мая 2020

У меня есть фрейм данных, как показано ниже

ID      ideal_appt_time            service_time
1       2020-01-06 09:00:00        22
2       2020-01-06 09:30:00        15
1       2020-01-08 14:00:00        42
2       2020-01-12 01:30:00        5

Я хотел бы добавить время обслуживания в минутах с ideal_appt_time и создать новый столбец с именем fini sh.

Ожидается Выход:

ID      ideal_appt_time            service_time       finish
1       2020-01-06 09:00:00        22                 2020-01-06 09:22:00
2       2020-01-06 09:30:00        15                 2020-01-06 09:45:00
1       2020-01-08 14:00:00        42                 2020-01-08 14:42:00
2       2020-01-12 01:30:00        35                 2020-01-12 02:05:00

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Используйте to_timedelta для преобразования столбца в timedeltas по минутам и добавьте к datetime:

df['ideal_appt_time'] = pd.to_datetime(df['ideal_appt_time'])

df['finish'] = df['ideal_appt_time'] + pd.to_timedelta(df['service_time'], unit='Min')
print (df)
   ID     ideal_appt_time  service_time              finish
0   1 2020-01-06 09:00:00            22 2020-01-06 09:22:00
1   2 2020-01-06 09:30:00            15 2020-01-06 09:45:00
2   1 2020-01-08 14:00:00            42 2020-01-08 14:42:00
3   2 2020-01-12 01:30:00             5 2020-01-12 01:35:00
0 голосов
/ 03 мая 2020

Данные

df=pd.DataFrame({'ideal_appt_time':['2020-01-06 09:00:00','2020-01-06 09:30:00','2020-01-08 14:00:00','2020-01-12 01:30:00'],'service_time':[22,15,42,35]})

Другой выход

df['finish'] = pd.to_datetime(df['ideal_appt_time']).add( df['service_time'].astype('timedelta64[m]'))
df

    ideal_appt_time service_time    finish
0   2020-01-06 09:00:00 22  2020-01-06 09:22:00
1   2020-01-06 09:30:00 15  2020-01-06 09:45:00
2   2020-01-08 14:00:00 42  2020-01-08 14:42:00
3   2020-01-12 01:30:00 35  2020-01-12 02:05:00
...