Adicionando coluna (s) calculada (s) a um dataframe em pandas

Eu tenho um conjunto de dados de preço do OHLC, que analisei do CSV em um dataframe do Pandas e reamostrei para barras de 15 min:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 500047 entries, 1998-05-04 04:45:00 to 2012-08-07 00:15:00
Freq: 15T
Data columns:
Close    363152  non-null values
High     363152  non-null values
Low      363152  non-null values
Open     363152  non-null values
dtypes: float64(4)

Gostaria de adicionar várias colunas calculadas, começando com as simples, como Intervalo de período (H-L) e, em seguida, booleanos para indicar a ocorrência de padrões de preço que eu definirei - por exemplo, um padrão de vela de martelo, para o qual uma definição de amostra:

def closed_in_top_half_of_range(h,l,c):
    return c > l + (h-1)/2

def lower_wick(o,l,c):
    return min(o,c)-l

def real_body(o,c):
    return abs(c-o)

def lower_wick_at_least_twice_real_body(o,l,c):
    return lower_wick(o,l,c) >= 2 * real_body(o,c)

def is_hammer(row):
    return lower_wick_at_least_twice_real_body(row["Open"],row["Low"],row["Close"]) \
    and closed_in_top_half_of_range(row["High"],row["Low"],row["Close"])

Problema básico: como mapear a função para a coluna, especificamente onde eu gostaria de referenciar mais de uma outra coluna ou a linha inteira ou o que quer que seja?

Esta postagem lida com a adição de duas colunas calculadas fora de uma única coluna de origem, o que é próximo, mas não é bem assim.

E um pouco mais avançado: para padrões de preços que são determinados com referência a mais de uma barra (T), como posso referenciar linhas diferentes (por exemplo, T-1, T-2 etc.) de dentro da definição da função?

questionAnswers(4)

yourAnswerToTheQuestion