簡體   English   中英

如何在單個列中的幾個最大值之間找到最小值?

[英]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

這里有更多解釋

IMG

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的值的范圍,然后找到該范圍內的最大值,最后找到所標識的最大值之間的最小值。

對於您的數據,可以通過與鄰居進行比較來屏蔽maxmin

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.

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