У меня есть pandas фрейм данных, как показано ниже
df1_new = pd.DataFrame({'person_id': [1, 2, 3, 4, 5],
'start_date': ['07/23/2377', '05/29/2477', '02/03/2177', '7/27/2277', '7/13/2077'],
'start_datetime': ['07/23/2377 12:00:00', '05/29/2477 04:00:00', '02/03/2177 02:00:00', '7/27/2277 05:00:00', '7/13/2077 12:00:00'],
'end_date': ['07/25/2377', '06/09/2477', '02/05/2177', '01/01/2000', '01/01/2000'],
'end_datetime': ['07/25/2377 02:00:00', '06/09/2477 04:00:00', '02/05/2177 01:00:00', '01/01/2000 00:00:00', '01/01/2000 00:00:00'],
'Type' :['IP','IP','OP','OP','IP']})
Я хотел бы сделать следующее:
if ((end_date contains 2000 or end_datetime contains 2000) and (type == IP)) then
end_date = start_date + 2 days
end_datetime = start_datetime + 2 days
else ((if end_date contains 2000 or end_datetime contains 2000) and (type == OP)) then
end_date = start_date
end_datetime = start_datetime
Это то, что я пробовал, но это не так t приводит к точному выводу
df['end_date'] = df['start_date'].apply(lambda x: df['start_date'] + pd.DateOffset(days=2) if (x == 'OP' and x == '01/01/2000') else df['start_date'])
df['end_datetime'] = df['start_datetime'].apply(lambda x: df['start_datetime'] + pd.DateOffset(days=2) if (x == 'OP' and x == '01/01/2000') else df['start_datetime'])
Я ожидаю, что мой вывод будет таким, как показано ниже