2

我有一个 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

我希望通过添加一个名为“EndofMonth”的附加列并从每个月获取尾随的第 n 行来过滤每个月的最后一个工作日的 df:

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

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

4

1 回答 1

2

IIUC

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

在此处输入图像描述


对评论的回应

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

在此处输入图像描述

于 2016-11-03T21:21:37.177 回答