累积最大值/最小值基于单独栏Panda中的标准



我想看看在未来的日期中是否有低于当前价格的价格。我可以一次为一只股票做这件事(下面的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

您就快到了。只需添加groupbyapply,这与您在帖子中已经进行的转换相同:

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

最新更新