累计 max/min 基于单独列中的条件 pandas
Cumulative max/min based on criteria in separate column pandas
我想查看未来日期中是否有比当前价格更低的价格。我一次可以为一只股票做这件事(下面的 DIS 是我想要的样子),但是当我有两只股票时,我只能 return 价格较低的股票的最小值(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
您已经在 post:
中进行的相同转换
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
```
我想查看未来日期中是否有比当前价格更低的价格。我一次可以为一只股票做这件事(下面的 DIS 是我想要的样子),但是当我有两只股票时,我只能 return 价格较低的股票的最小值(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
您已经在 post:
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
```