按datetimeindex过滤数据帧 - 每月的最后一个工作日

时间:2016-11-03 21:02:49

标签: python pandas datetimeindex

我有一个df,下面可以用日期列和4个变量列表示。

Date          A B C D
2015-10-31    6 7 3 7
2015-11-01    1 3 9 4
2015-11-02    4 5 8 1
2015-11-03    4 2 5 9

我希望在每个月的最后一个工作日过滤df,方法是添加一个名为“EndofMonth”的附加列并从每个月开始追踪第n行:

df['EndOfMonth'] = pd.to_datetime(df['DATE'], format="%Y%m") + MonthEnd(1)
df.apply(lambda x: x.sort('dt', ascending=True).tail(1))

这给了我一个错误。关于如何更好地解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

IIUC

df.resample('M', on='Date').apply(pd.DataFrame.tail, n=2)

enter image description here

对评论的回复

d1 = df.resample('M').apply(pd.DataFrame.tail, n=2)
d1.index = d1.index.droplevel(0)
d1

enter image description here