Python. Условие по полю Дата (Timestamp) меньше или равно

Рейтинг: 0Ответов: 0Опубликовано: 21.06.2023

Помогите, пожалуйста.

Пишу функцию, которая возвращает бинарный признак 1 или 0 - сразу по нескольким условиям, которые должны быть True, как говориться.

def ak(df3):
if df3['agr_count'] > 0 and df3['akt_count'] > 0 \
         and (df3['akt_dt_max'] + timedelta(days=365) \
         and (df3['akt_dt_max'] < '2023-05-22')):
    val = 1
else :
    val = 0
return val

Затем создаю в Датафрейме столбец

df3['no_akt_to_more_1_year'] = df3.apply(ak, axis=1)

Если запустить функцию, такую как я написал - выдает ошибку:

TypeError: '<' not supported between instances of 'Timestamp' and 'str'

Но, если из функции убрать последнее условие (df3['akt_dt_max'] < '2023-05-22') или поменять его на (df3['akt_dt_max'] == '2023-05-22') то код отрабатывает без проблем.

При этом я точно знаю, что в датафрейме есть даты ранее 2023-05-22. И если прописываю аналогичное условие на импортированном датасете в MS Power BI - создаю столбец в таблице: Нет акта больше года = if(_table[agr_count]>0 && _table[akt_count]>0 && (_table[akt_dt_max]+365)<=date(2023,5,22),1,0) тоже все срабатывает, столбец создается с бинарным признаком 1 и 0, как и положено.

Как мне все таки написать такое условие в Python?

Ответы

Ответов пока нет.