Pandas 重新采样 OHCL

Pandas Resample OHCL

index close
2022-02-21 3
2022-02-22 1
2022-02-23 5
2022-02-24 5
2022-02-25 7
2022-03-02 4
2022-03-03 2
2022-03-04 1

我的输出应该是:

index close
2022-02-21 7
2022-03-02 1

我试过了

df.resample('W-MON', closed='left', label='left').last() 

但是我拿错了标签。

index close
2022-02-21 7
2022-02-28 1

问题是我可能有“缺失的日子”,例如 2022-02-28 和 2022-03-01,我想使用一周中第一个“可用”的日子。例如 2022-02-21(星期一)和 2022-03-02(星期三)

您可以将索引分配给新列,然后保留该组中的第一个值

out = (df.assign(index=df.index)
       .groupby(pd.Grouper(freq='W-MON', closed='left', label='left')).agg({'index': 'first', 'close': 'last'})
       .reset_index(drop=True))
print(out)

       index  close
0 2022-02-21      7
1 2022-03-02      1