Python 选择数据框中每个月的特定日期数据

Python 选择数据框中每个月的特定日期数据,python,pandas,datetime,masking,Python,Pandas,Datetime,Masking,我有一个包含每日数据的数据框架,已经有3年多了。 我想构建另一个数据框架,其中包含每个月最后5天的数据。 在这种情况下,“日期”列的行是(对于新构造的数据帧): 2013-01-27 2013-01-28 2013-01-29 2013-01-30 2013-01-31 2013-02-23 2013-02-25 2013-02-26 2013-02-27 2013-02-28 有人能告诉我怎么办吗 非常感谢 一种方法是使用布尔索引将dt.day和dt.days\u分月进行索引: df = pd

我有一个包含每日数据的数据框架,已经有3年多了。 我想构建另一个数据框架,其中包含每个月最后5天的数据。 在这种情况下,“日期”列的行是(对于新构造的数据帧):

2013-01-27
2013-01-28
2013-01-29
2013-01-30
2013-01-31
2013-02-23
2013-02-25
2013-02-26
2013-02-27
2013-02-28

有人能告诉我怎么办吗


非常感谢

一种方法是使用布尔索引将
dt.day
dt.days\u分月进行索引:

df = pd.DataFrame({'Date':pd.date_range('2010-01-01','2013-12-31',freq='D'),
                   'Value':np.random.rand(1461)})

df_out = df[df['Date'].dt.day > df['Date'].dt.days_in_month-5]

print(df_out.head(20))
输出:

          Date     Value
26  2010-01-27  0.097695
27  2010-01-28  0.236572
28  2010-01-29  0.910922
29  2010-01-30  0.777657
30  2010-01-31  0.943031
54  2010-02-24  0.217144
55  2010-02-25  0.970090
56  2010-02-26  0.658967
57  2010-02-27  0.189376
58  2010-02-28  0.229299
85  2010-03-27  0.986992
86  2010-03-28  0.980633
87  2010-03-29  0.258102
88  2010-03-30  0.827310
89  2010-03-31  0.813219
115 2010-04-26  0.135519
116 2010-04-27  0.263941
117 2010-04-28  0.120624
118 2010-04-29  0.993652
119 2010-04-30  0.901466

假设您的列名为
Date

df.groupby([df.Date.dt.month,df.Date.dt.year]).apply(lambda x: x[-5:]).reset_index(drop=True).sort_values('Date')