Pandas 从数据帧中选择最近和最近第六个月

Pandas 从数据帧中选择最近和最近第六个月,pandas,dataframe,date,Pandas,Dataframe,Date,我有一个24个月的数据框架。如何创建只包含数据框中最近一个月和最近第6/N个月的新数据框。您可以测试当前日期或当前日期减去6个月的年份和月份是否相等 df = pd.DataFrame({"Date":pd.date_range(dt.date(2019,9,1), dt.date(2021,9,1), freq="M")}) t = pd.to_datetime("today") td = t - pd.Timedelta(days

我有一个24个月的数据框架。如何创建只包含数据框中最近一个月和最近第6/N个月的新数据框。

您可以测试当前日期或当前日期减去6个月的年份和月份是否相等

df = pd.DataFrame({"Date":pd.date_range(dt.date(2019,9,1), dt.date(2021,9,1), freq="M")})

t = pd.to_datetime("today")
td = t - pd.Timedelta(days=365//2)

mask = (df.Date.dt.year.eq(t.year) & df.Date.dt.month.eq(t.month)) | (df.Date.dt.year.eq(td.year) & df.Date.dt.month.eq(td.month))
df2 = df[mask]

print(df2)
输出
         Date
11 2020-08-31
17 2021-02-28