Python 熊猫-基于先前计算的行值计算行值

Python 熊猫-基于先前计算的行值计算行值,python,pandas,Python,Pandas,解决以下熊猫问题最有效的方法是什么 让我们假设我们有以下df: v1 v2 index 0 1 2 1 5 6 2 7 3 3 9 4 4 5 1 现在我们要根据以下函数计算第三个值(v3): if df.v1.shift(1) > df.v3.shift(1): df.v3 = max(df.v2,

解决以下熊猫问题最有效的方法是什么

让我们假设我们有以下df:

        v1    v2   
index
0       1     2     
1       5     6    
2       7     3     
3       9     4       
4       5     1     
现在我们要根据以下函数计算第三个值(v3):

if df.v1.shift(1) > df.v3.shift(1):
    df.v3 = max(df.v2, df.v3.shift(1))
else:
    df.v3 = df.v2
所需的输出应如下所示:

        v1    v2    v3
index
0       1     2     2
1       5     6     6
2       7     3     3
3       9     4     4    
4       5     1     4

来自维也纳的THX&BR

我相信以下两条线可以达到您的目的:

df['v3'] = df['v2']
df['v3'] = df['v3'].where(df['v1'].shift(1)<=df['v3'].shift(1),pd.DataFrame([df['v2'],df['v3'].shift(1)]).max())
df['v3']=df['v2']

df['v3']=df['v3'].where(df['v1'].shift(1)你想计算什么?如果没有一些域信息,循环似乎是唯一的方法。我必须处理数百万行,这就是为什么我更喜欢没有循环的解决方案。我希望你理解我说的。如果你不确切地告诉我你想计算什么,我就不知道你想做什么。这是一个错误吗公式?这是一个过程吗?它有名字吗?你想做什么?我想计算一个名为“SuperTrend”的价格数据财务指标。在这里你可以找到详细信息:对于那些能在tradesignals pine editor中编码的人,这是它的pine代码:Up=hl2-(Factoratr(ATR))Dn=hl2+(Factoratr(ATR))TUp=close[1]>TUp[1]?最大值(上升,TUp[1]):上升时差=关闭[1]时差[1]?1:关闭