Referenciando linhas anteriores em um arquivo csv usando Pandas
Dica publicada em Python / Miscelânea
Referenciando linhas anteriores em um arquivo csv usando Pandas
Bom, eu estou aprendendo machine learning e, brincando com histórico de cotações da Bovespa, precisava criar alguns índices para alguns testes.
Meu problema era criar um índice que utilizasse (referenciasse) os dados dos dias anteriores. Usando o Pandas, claro! Como exemplo, o arquivo que vem do Yahoo Finances tem o seguinte cabeçalho:
Para fazer o processamento, eu queria adicionar uma coluna ao data frame (que será meu histórico de cotações), calculando, por exemplo, o Pivot Point, que é definido como sendo a soma do preço mínimo somado aos preços máximos e de fechamento de ontem, dividido por três. Ou seja:
em que pivot = (High(ontem) + Low(ontem) + Close(ontem))/3
Fica assim:
Como pode ser visto acima, os índices são os nomes das colunas do arquivo csv e usamos a função shift para "voltar" alguns registros.
Depois que a linha anterior for executada, o primeiro registro terá nan na coluna Pivot. No meu caso, eu vou descartar essa primeira linha. Para isso, vou usar o seguinte comando:
Meu problema era criar um índice que utilizasse (referenciasse) os dados dos dias anteriores. Usando o Pandas, claro! Como exemplo, o arquivo que vem do Yahoo Finances tem o seguinte cabeçalho:
Date,Open,High,Low,Close,Adj Close,Volume
Para fazer o processamento, eu queria adicionar uma coluna ao data frame (que será meu histórico de cotações), calculando, por exemplo, o Pivot Point, que é definido como sendo a soma do preço mínimo somado aos preços máximos e de fechamento de ontem, dividido por três. Ou seja:
Date,Open,High,Low,Close,Adj Close,Volume,Pivot
em que pivot = (High(ontem) + Low(ontem) + Close(ontem))/3
Fica assim:
import Pandas as pd
cotacao = pd.read_csv("BVSP.csv") #histórico original
cotacao['Pivot'] = ( cotacao['High'].shift(1) + cotacao['Low'].shift(1) + cotacao['Close'].shift(1) ) /3
Como pode ser visto acima, os índices são os nomes das colunas do arquivo csv e usamos a função shift para "voltar" alguns registros.
Depois que a linha anterior for executada, o primeiro registro terá nan na coluna Pivot. No meu caso, eu vou descartar essa primeira linha. Para isso, vou usar o seguinte comando:
cotacao = cotacao.iloc[1:]