Python 选择数据框中每个月的特定日期数据
我有一个包含每日数据的数据框架,已经有3年多了。 我想构建另一个数据框架,其中包含每个月最后5天的数据。 在这种情况下,“日期”列的行是(对于新构造的数据帧): 2013-01-27Python 选择数据框中每个月的特定日期数据,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
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')