Python 熊猫-基于先前计算的行值计算行值
解决以下熊猫问题最有效的方法是什么 让我们假设我们有以下df: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,
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:关闭