我如何在 if-condition 中合并前一个单元格的值?

How can i incorporate value frem previous cell in if-condition?

我正在处理一些股票数据,我希望计算股价创下新高的次数,例如股票价格连续多少次高于前一个价格。然后应在股价旁边的一栏中计算更高的高点数量,如果股价未能创出更高的高点,则该栏中的值应“重置”为零。

我想要的结果是这样的:

Stock Price Number of higher highs
150 0
275 1
300 2
280 0
300 1
350 2
400 3

我已经尝试了多种解决方案,但无法使它们起作用。我试过使用 if 语句,但我在编写条件“如果股票价格的值大于前一个值,那么具有更高高点数的列应该等于 1 + 前一个值”时遇到了问题.

工作示例:

import pandas as pd
data=[[150,0],[275,0],[300,0],[280,0],[300,0],[350,0],[400,0]]
df=pd.DataFrame(data,columns=['Stock Price','Number of higher highs'])

感谢所有意见和可能的解决方案!

希望这能解决您的问题

import pandas as pd
data=[[150,0],[275,0],[300,0],[280,0],[300,0],[350,0],[400,0]]

tmp = -1
for indx in range (len( data)):
    if tmp == -1:
        tmp = data[indx][0]
        data[indx][1] = 0
    else:
        if data[indx][0] > tmp:
            data[indx][1]=data[indx-1][1] + 1
        tmp = data[indx][0]
        
        

df=pd.DataFrame(data,columns=['Stock Price','Number of higher highs'])

你也可以这样解决:

df.groupby((df['Stock Price'].le(df['Stock Price'].shift())).cumsum()).cumcount()