[英]How to find min value between several max values in a single column?
編輯:請看這個問題的結尾。 進行了編輯。
我需要在單列中找到每兩個最大值之間的最小值。 最大值的最小值應大於10。
這是示例:
Price Vol.
95 7
90 13
85 19
80 16
75 12
70 5
65 8
60 15
55 22
50 35
45 20
40 8
35 3
30 6
25 11
20 20
15 25
10 16
5 8
我想知道我將如何獲得這樣的幫助:
Price Vol. Result
85 19 max
70 5 min
50 35 max
35 3 min
15 25 max
這里有更多解釋
Edit1:在Quang Hoang給出正確答案之后,我注意到我的樣本看起來太好了(我的意思是不現實)。
這是新的更實際的示例:
Price Vol.
30 7
29 13
28 19
27 18
26 21
25 5
24 8
23 15
22 22
21 29
20 20
21 26
20 28
19 25
18 11
17 15
16 11
15 7
14 3
13 12
12 18
11 33
10 25
我想知道我將如何獲得這樣的幫助:
Price Vol. Result
26 21 max
25 5 min
21 29 max
14 3 min
11 33 max
如您所見,我需要確定大於10的值的范圍,然后找到該范圍內的最大值,最后找到所標識的最大值之間的最小值。
對於您的數據,可以通過與鄰居進行比較來屏蔽max
和min
:
diff = df['Vol.'].diff()
is_max = diff.gt(0) & diff.shift(-1).lt(0)
is_min = diff.shift().lt(0) & diff.gt(0)
df['Result'] = np.select([is_max, is_min], ['max', 'min'])
df[df['Result'].ne('0')]
輸出:
Price Vol. Result
2 85 19 max
6 65 8 min
9 50 35 max
13 30 6 min
16 15 25 max
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.