У меня есть pandas датафреймы для хранения единиц времени:
import pandas as pd
d = {
'analysis_datetime': ['2018-07-15 11:50:48+00:00', '2018-07-15 13:22:24+00:00'],
'processing_duration': [4930, 8101],
'accessioning_duration': [1032, 2310]
}
df = pd.DataFrame(data=d)
Столбцы processing_duration
и accessioning_duration
указаны в минутах.
Я хотел бы создать новый столбец с именем shipping_datetime
на основе следующей формулы:
shipping_datetime = analysis_datatime - processing_duration - accessioning_duration
Первое время доставки должно быть
from datatime import datatime, timedelta
shipping_datetime = datetime.strptime('2018-07-15 11:50:48+00:00', '%Y-%m-%d %H:%M:%S%z')
- timedelta(minutes=4930)
- timedelta(minutes=1032)
shipping_datetime.strftime('%Y-%m-%d %H:%M:%S%z')
'2018-07-15 11:50:48+0000'
Это один ряд. Я хотел бы создать новый столбец, который применяет это ко всем строкам.
Вот что у меня есть:
df['shipping_datetime'] = df.apply(lamba x.strftime('%Y-%m-%d %H:%M:%S%z'):
pd.to_datetime(x.analysis_datetime)
- timedelta(minutes=x.processing_duration)
- timedelta(minutes=x.accessioning_duration), axis=1)
Я получаю неверную синтаксическую ошибку. Как мне это сделать?