我從如下所示的財務 API 獲取資料:
工業 | 高開低收
0 | 2.04 2.04 2.04 2.04
1 | 2.06 2.10 2.06 2.10
2 | 2.10 2.11 2.10 2.11
3 | 2.12 2.12 2.10 2.10
4 | 2.06 2.06 2.06 2.06
我的問題: 每行代表 1 分鐘。一旦我確定了最高值,如何在最高值之前提取最低值,在最高值之后提取最低值?我想創建兩個新列并將兩個值都添加到 0 行中。
我的解決方法不適用于 pandas: 我來自 excel/VBA 背景。在 VBA 中,我會告訴 Excel 從最大值創建一個變數,然后沿著每一行向下比較該行中的“高”值。如果該行的“高”值不等于變數,Excel 將獲取該行中的最小值并將其轉儲到陣列中。我會告訴 Excel 繼續將“低”值轉儲到陣列中,直到行中的“高”值與變數匹配。然后我從陣列中提取最小值,這就是我獲得“低之前高”值的方式。
但是,我很難在熊貓資料框中“移動”。你能幫我一把嗎?
uj5u.com熱心網友回復:
假設您的資料框是按順序索引的 (0, 1, 2, 3, ...):
idxmax = df['close'].idxmax()
max_value = df.loc[idxmax, 'close']
lowest_before = df.loc[:idxmax-1, 'close'].min()
highest_after = df.loc[idxmax 1:, 'close'].max()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409498.html
標籤:
