我正在嘗試計算從第一行到當前行的資料幀值的累積 AUC。
前任:
| 積分 | 曲線下面積 | |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 0.5 |
| 2 | 2 | 1 |
| 3 | 3 | 4.5 |
| 4 | 4 | 8 |
| 5 | 5 | 12.5 |
| 6 | 4 | 17 |
| 7 | 0 | 19 |
| 8 | -2 | 18 |
| 9 | -2 | 16 |
我可以使用 np.trapz() 但我必須通過 for 回圈逐行計算它。
for i in df.index:
row={"AUC" : trapz(df["points"].iloc[:i])}
df["AUC"].iloc[i]=row
有沒有辦法在不使用 for 回圈的情況下將其應用于整個列?
第二個問題是我的資料框每分鐘更新一次,所以我必須從 df 的開頭計算這個累積 AUC,這使得計算越來越長,或者選擇 df 的一部分(例如:df.tail(25) ) 并對其應用一個函式,通過這樣做,我將失去計算 iloc[-25] 之前曲線的 AUC。
uj5u.com熱心網友回復:
我會嘗試這樣的事情:
np.cumsum(df.points)-np.concatenate(([0], np.cumsum(np.diff(df.points)/2)), axis=0)
這是一個作業示例:https ://abstra.show/dezL0ASX4s
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/487633.html
