根据日期列差异过滤 pandas 数据框

boh*_*tti 1 python datetime dataframe pandas

根据两个日期列之间的差异过滤 pandas 数据框的最有效方法是什么?

例如,基于以下数据框:

   CADASTRO    RESPOSTA      EVAL 
0  2021-06-01  2021-06-13    y
1  2021-06-01  2021-06-13    y
2  2021-06-01  2021-06-18    y
3  2021-06-01  2021-06-09    n
4  2021-06-01  2021-06-20    n
5  2021-06-01  2021-06-20    n
Run Code Online (Sandbox Code Playgroud)

如何过滤它以仅包含列之间的差异RESPOSTA小于CADASTRO15 天的记录?我尝试了以下方法,但没有成功:

import datetime
filtered_df = df[(df.RESPOSTA - df.CADASTRO).days < 15]
Run Code Online (Sandbox Code Playgroud)

期望的输出是:

   CADASTRO    RESPOSTA      EVAL
0  2021-06-01  2021-06-13    y
1  2021-06-01  2021-06-13    y
3  2021-06-01  2021-06-09    n
Run Code Online (Sandbox Code Playgroud)

Hen*_*ker 5

通过日期时间访问器访问天数dt

# Ensure DateTime
df['CADASTRO'] = pd.to_datetime(df['CADASTRO'])
df['RESPOSTA'] = pd.to_datetime(df['RESPOSTA'])
# Access Days through dt.days
filtered_df = df[(df.RESPOSTA - df.CADASTRO).dt.days < 15]
Run Code Online (Sandbox Code Playgroud)

filtered_df

    CADASTRO   RESPOSTA EVAL
0 2021-06-01 2021-06-13    y
1 2021-06-01 2021-06-13    y
3 2021-06-01 2021-06-09    n
Run Code Online (Sandbox Code Playgroud)