簡體   English   中英

時間序列數據的歷史最小值而不是 Panda 中的 .min

[英]Historical minimum of timeseries data instead of .min in Panda

我有 dataframe 不同股票及其在不同時間點的股價,如下所示:

Stock_ID   Price   Date
1          45      2022-11-22
1          43      2022-11-21 
1          46      2022-11-20
1          49      2022-11-19
2          81      2021-10-19
2          79      2021-10-13
2          63      2021-10-09
2          74      2021-10-07
2          77      2021-09-30
3          32      2022-03-16
3          39      2022-02-14
3          30      2022-02-01

我想添加一個新列Historical_low來計算該股票的歷史最低值,因此期望的結果看起來像

Stock_ID   Price   Date        Historical_low
1          45      2022-11-22  43
1          43      2022-11-21  46
1          46      2022-11-20  49
1          49      2022-11-19  np.nan
2          81      2021-10-19  63
2          79      2021-10-13  63
2          63      2021-10-09  74
2          74      2021-10-07  77
2          77      2021-09-30  np.nan
3          32      2022-03-16  30
3          39      2022-02-14  30
3          30      2022-02-01  np.nan

這是我的嘗試:

df.sort_values(['Stock_ID','Date], ascending=[True, False], inplace=True)
df['Historical_low'] = df.gropuby('Stock_ID')['Price'].min()

但這給了我特定股票的全球最低股價,這意味着對於某些行,我正在使用未來的信息。

提前謝謝你的幫助。

IIUC,您可以使用移位的groupby.cummin

df['Historical_low'] = (df
   .sort_values(by='Date', ascending=True)
   .groupby('Stock_ID', group_keys=False)['Price']
   .apply(lambda s: s.cummin().shift())
)

output:

    Stock_ID  Price       Date  Historical_low
0          1     45 2022-11-22            43.0
1          1     43 2022-11-21            46.0
2          1     46 2022-11-20            49.0
3          1     49 2022-11-19             NaN
4          2     81 2021-10-19            63.0
5          2     79 2021-10-13            63.0
6          2     63 2021-10-09            74.0
7          2     74 2021-10-07            77.0
8          2     77 2021-09-30             NaN
9          3     32 2022-03-16            30.0
10         3     39 2022-02-14            30.0
11         3     30 2022-02-01             NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM