【发布时间】:2022-01-22 12:43:59
【问题描述】:
这是我当前的 df。我想分 3 步转换数据框。我需要删除重复的时间戳,但希望根据“边”列保留最大值或最小值。请帮忙:)
我已经尝试过df= df[~df.index.duplicated(keep='first')],但这没有保留最大值或最小值的选项
索引类型为datetime格式,Price为float,Side为整数,数据框8000+行。
Price Side
2021-12-13 00:00:03.285 51700 4
2021-12-13 00:00:03.315 51675 3
2021-12-13 00:00:03.333 50123 4
2021-12-13 00:00:03.333 50200 3
2021-12-13 00:00:03.333 50225 3
2021-12-13 00:00:03.333 50250 3
2021-12-13 00:00:03.421 50123 4
2021-12-13 00:00:03.421 50117 4
2021-12-13 00:00:03.421 50110 4
2021-12-13 00:00:03.671 50100 3
- 如果时间重复,边为“3”时保持最大值,如果时间重复边为“4”时保持最小值。
Desired Output:
Price Side
2021-12-13 00:00:03.285 51700 4
2021-12-13 00:00:03.315 51675 3
2021-12-13 00:00:03.333 50123 4
2021-12-13 00:00:03.333 50250 3
2021-12-13 00:00:03.421 50110 4
2021-12-13 00:00:03.671 50100 3
- 创建具有相应价格的新列“3”和“4”
Desired Output:
Price 3 4
2021-12-13 00:00:03.285 51700 0 51700
2021-12-13 00:00:03.315 51675 51675 0
2021-12-13 00:00:03.333 50123 0 50123
2021-12-13 00:00:03.333 50250 50250 0
2021-12-13 00:00:03.421 50110 0 50110
2021-12-13 00:00:03.671 50100 50100 0
- 用同一列以前的值填空
Desired Output:
Price 3 4
2021-12-13 00:00:03.285 51700 0 51700
2021-12-13 00:00:03.315 51675 51675 51700
2021-12-13 00:00:03.333 50123 51675 50123
2021-12-13 00:00:03.333 50250 50250 50123
2021-12-13 00:00:03.421 50110 50250 50110
2021-12-13 00:00:03.671 50100 50100 50110
【问题讨论】:
-
“如果边是 3”是什么意思?组
2021-12-13 00:00:03.333有四个项目,三个边是3,一个是4。你如何确定那个时候的边? -
哦等等,你想按
time分组和side
标签: pandas dataframe jupyter-notebook time-series trading