我想看看在未来的日期中是否有低于当前价格的价格。我可以一次为一只股票做这件事(下面的DIS是我想要的样子(,但当我有两只股票时,我只能返回价格较低的股票(DIS(的最小值。我需要每分钟都相对于它的库存。
data['min'] = data['current_price'].iloc[::-1].cummin()[::-1]
Symbols Date current_price min
0 AMZN 2020-07-01 2,754.00 112.00
2 AMZN 2020-07-02 2,871.10 112.00
4 AMZN 2020-07-06 2,930.00 112.00
6 AMZN 2020-07-07 2,990.00 112.00
8 AMZN 2020-07-08 3,012.43 112.00
10 AMZN 2020-07-09 3,074.00 112.00
12 AMZN 2020-07-10 3,135.70 112.00
14 AMZN 2020-07-13 3,068.39 112.00
1 DIS 2020-07-01 112.29 112.00
3 DIS 2020-07-02 112.00 112.00
5 DIS 2020-07-06 112.90 112.61
7 DIS 2020-07-07 112.61 112.61
9 DIS 2020-07-08 112.81 112.81
11 DIS 2020-07-09 115.38 115.38
13 DIS 2020-07-10 116.21 115.89
15 DIS 2020-07-13 115.89 115.89
您就快到了。只需添加groupby
和apply
,这与您在帖子中已经进行的转换相同:
data['min'] = data.groupby('Symbols')['current_price'].apply(
lambda x: x[::-1].cummin()[::-1])
print(data)
Symbols Date current_price min
0 AMZN 2020-07-01 2,754.00 2,754.00
2 AMZN 2020-07-02 2,871.10 2,871.10
4 AMZN 2020-07-06 2,930.00 2,930.00
6 AMZN 2020-07-07 2,990.00 2,990.00
8 AMZN 2020-07-08 3,012.43 3,012.43
10 AMZN 2020-07-09 3,074.00 3,068.39
12 AMZN 2020-07-10 3,135.70 3,068.39
14 AMZN 2020-07-13 3,068.39 3,068.39
1 DIS 2020-07-01 112.29 112.00
3 DIS 2020-07-02 112.00 112.00
5 DIS 2020-07-06 112.90 112.61
7 DIS 2020-07-07 112.61 112.61
9 DIS 2020-07-08 112.81 112.81
11 DIS 2020-07-09 115.38 115.38
13 DIS 2020-07-10 116.21 115.89
15 DIS 2020-07-13 115.89 115.89
```