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

时间:2017-06-06 17:35:14

标签: python pandas

我一直在尝试构建一个计算Heiken Ashi蜡烛的功能,以不同的方式可视化市场价格。为此我正在使用python的pandas库。在必须完成的不同行的列和行之间存在一些操作(例如,用前一个单元格添加值并更新实际值),所以我设法用循环制作那些,但我认为它必须是最可爱的方式来做到这一点。谁能告诉我是否真的可以从我的代码中消除循环?

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

非常感谢你的帮助!

0 个答案:

没有答案