假设我有一个数据框,第一列是股票交易日。为方便起见,我用数字代表日期。
data = pd.DataFrame({'date': [1,2,3,1,2,3,4,1,2,3],
'value': range(1, 11)})
我有另一个包含monthend日期的数据框。所以我首先可以从这样的数据中得到monthend行。
date value
2 3.0 3.0
6 4.0 7.0
9 3.0 10.0
我希望在星期一之前获取n天的数据,例如,
之前的1天 date value
1 2.0 2.0
5 3.0 6.0
8 2.0 9.0
我该如何编码呢?
答案 0 :(得分:1)
我正在使用cumsum
和groupby
df1=data.groupby(data.date.eq(1).cumsum()).tail(1)
df1
Out[208]:
date value
2 3 3
6 4 7
9 3 10
df2=data.loc[df1.index-1]
df2
Out[213]:
date value
1 2 2
5 3 6
8 2 9