Использовать Series.between
с вычитанным временем и временем в 10 дней и текущим временем:
#if necessary
df['date'] = pd.to_datetime(df['date'])
now = pd.to_datetime('now')
df['output'] = df['date'].between(now - pd.Timedelta(10, 'd'), now)
Работает так же, как прикованная маска по битам AND
для greater or equal
- Series.ge
и less or equal
- Series.le
:
df['output'] = df['date'].ge(now - pd.Timedelta(10, 'd')) & df['date'].le(now)
#alternative
#df['output'] = (df['date'] >= now - pd.Timedelta(10, 'd')) & (df['date'] <= now)
print (df)
name date output
0 john 2019-08-24 05:30:30 False
1 jude 2020-03-03 21:15:03 True
Если нужны другие комбинации, используйте Series.lt
, Series.gt
, Series.le
, Series.ge
.
Если хотите пропустить время и работать только с датами, добавьте Series.dt.date
и Timestamp.date
:
#if necessary
df['date'] = pd.to_datetime(df['date'])
now = pd.to_datetime('now').date()
df['output'] = df['date'].dt.date.between(now - pd.Timedelta(10, 'd'), now)
print (df)
name date output
0 john 2019-08-24 05:30:30 False
1 jude 2020-03-03 21:15:03 True