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
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