Я пытаюсь создать столбец на основе и заполнить его значением на основе сравнения одного столбца даты с тремя другими столбцами даты.
Пример DataFrame df
показан ниже. Все показанные даты уже конвертированы в pd.to_datetime
, что привело к значению NaT
значений, так как индивидуум не прогрессировал
1st_date 2nd_date 3rd_date action_date
2015-10-05 NaT NaT 2015-12-03
2015-02-27 2015-03-14 2015-03-15 2015-04-08
2015-03-07 2015-03-27 2015-03-28 2015-03-27
2015-01-05 2015-01-20 2015-01-21 2015-05-20
2015-01-05 2015-01-20 2015-01-21 2015-09-16
2015-05-23 2015-06-18 2015-06-19 2015-07-01
2015-03-03 NaT NaT 2015-07-23
2015-03-03 NaT NaT 2015-11-14
2015-06-05 2015-06-19 2015-06-20 2015-10-24
2015-10-08 2015-10-21 2015-10-22 2015-12-22
Я пытаюсь создать пятый столбец, содержащий результат (или группу) сравнения столбца action_date
с тремя предыдущими столбцами даты 1st_date, 2nd_date, 3rd_date
.
Я пытаюсь заполнить пятый столбец с именем action_group
строкой, назначающей каждой дате группу.
Псевдокод для потенциальной функции (и ожидаемого выхода) имеет вид: if action_date > 1st_date and < 2nd_date then action_group = '1st_action_group'
Такое же сравнение необходимо для action_date
, 2nd_date
и 3rd_date
, что приведет к выводу 2nd_action_group
в столбце action_group
.
Наконец, если action_date
больше 3rd_date
, action_group
будет присвоено значение 3rd_action_group
.
Пример ожидаемого результата показан ниже.
1st_date 2nd_date 3rd_date action_date action_group
2015-10-05 NaT NaT 2015-12-03 1st_action_group
2015-02-27 2015-03-14 2015-03-15 2015-04-08 3rd_action_group
2015-03-07 2015-03-27 2015-03-28 2015-03-27 2nd_action_group
2015-01-05 2015-01-20 2015-01-21 2015-05-20 3rd_action_group
2015-01-05 2015-01-20 2015-01-21 2015-09-16 3rd_action_group
2015-05-23 2015-06-18 2015-06-19 2015-07-01 3rd_action_group
2015-03-03 NaT NaT 2015-07-23 1st_action_group
2015-03-03 NaT NaT 2015-11-14 1st_action_group
2015-06-05 2015-06-19 2015-06-20 2015-10-24 3rd_action_group
2015-10-08 2015-10-21 2015-10-22 2015-12-22 3rd_action_group
Буду очень признателен за любую помощь, которую сможет оказать любой.