小编Nat*_*Dai的帖子

优化函数 python dataframe

我有 supertrend 实现的 python 代码。我正在使用 pandas 数据框。代码工作正常,但是随着数据帧长度的增加,超级趋势函数运行得越来越慢。我想知道是否可以在代码中更改任何内容来优化它并使其运行得更快,即使数据帧长度很大。

def trueRange(df):
    df['prevClose'] = df['close'].shift(1)
    df['high-low'] = df['high'] - df['low']
    df['high-pClose'] = abs(df['high'] - df['prevClose'])
    df['low-pClose'] = abs(df['low'] - df['prevClose'])
    tr = df[['high-low','high-pClose','low-pClose']].max(axis=1)
    
    return tr

def averageTrueRange(df, peroid=12):
    df['trueRange'] = trueRange(df)
    the_atr = df['trueRange'].rolling(peroid).mean()
    
    return the_atr
    

def superTrend(df, peroid=5, multipler=1.5):
    df['averageTrueRange'] = averageTrueRange(df, peroid=peroid)
    h2 = ((df['high'] + df['low']) / 2)
    df['Upperband'] = h2 + (multipler * df['averageTrueRange'])
    df['Lowerband'] = h2 - (multipler * df['averageTrueRange'])
    df['inUptrend'] = None

    for current in range(1,len(df.index)):
        prev …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

8
推荐指数
1
解决办法
558
查看次数

3
推荐指数
1
解决办法
77
查看次数

在Python中,海象运算符的运算顺序是什么?

如果有人可以通过在 PEMDAS 中添加 W 来给出答案,那将非常有用。谢谢。

python python-3.x walrus-operator

1
推荐指数
1
解决办法
684
查看次数