pandas中行与列之间的复杂操作

2024-06-14 07:12:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试构造一个函数来计算Heiken Ashi蜡烛,从而以不同的方式形象化市场价格。为此,我使用python的pandas库。在不同position的列和行之间存在一些必须执行的操作(例如,用前一个单元格添加值并更新实际值),所以我设法用一个循环来执行这些操作,但我认为这一定是一种最容易扩展的方法。有人能告诉我是否真的有可能从我的代码中消除循环吗?你知道吗

def heikenashi(df):

    df['HA_Close'] = df[['Open','High','Close','Low']].mean(axis=1)
    ha_o = (df['Open'] + df['Close']) / 2  #Creating a Variable
    df['HA_Open'] = 0.0
    df['HA_High'] = 0.0
    df['HA_Low'] = 0.0

    df.ix[1, 'HA_Open'] = (df['Open'][0] + df['Close'][0]) / 2

    i = 2
    while i < len(df.index):
        df.ix[i, 'HA_Open'] = (df.ix[i-1, 'HA_Open'] + df.ix[i-1, 'Close']) / 2
        df.ix[i, 'HA_High'] = df.ix[i-1, ['High', 'HA_Open', 'HA_Close']].max()
        df.ix[i, 'HA_Low'] = df.ix[i-1, ['Low', 'HA_Open', 'HA_Close']].min()
        i += 1

    return df

非常感谢你的帮助!你知道吗


Tags: 函数dfclose市场方式价格openlow