Cálculo do Desvio Padrão com dados de mais de uma coluna.

Home Fóruns Fórum Estatística para Ciência de Dados e Machine Learning Cálculo do Desvio Padrão com dados de mais de uma coluna.

Marcado: 

Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #27710
    Alex_Barros
    Participante

    Olá Professor,

    Eu tenho uma base de dados com oos preços de uma ação pelo número de dias, é uma série temporal. O data frame do Pandas tem as colunas: open, high, low, close

    Estou calculando o desvio padrão de 10 em 10 dias de uma coluna no Python usando: df[‘std_10’] = df[‘open’].rolling(10).std()

    Eu queria fazer o mesmo cálculo usando os dados de todas as colunas ao mesmo tempo, tentei usar a seguinte linha de código:

    df[‘std_10’] = df[[‘open’,’high’,’low’,’close’]].rolling(10).std()

    Mas essa linha não deu certo. Você pode me falar como seleciono todas as colunas para fazer o rolling e pegar os dados de mais de uma coluna?

    Obrigado.

    #27712
    Alex_Barros
    Participante

    Esqueci de falar que calcular o desvio padrão de múltiplas colunas individualmente ao mesmo tempo isso eu já consegui. O meu problema agora é incluir todos os dados das colunas de 10 em 10.

    #27750

    Boa noite Alex, sua pergunta não havia sido notificada aqui para mim. Que bom que conseguiu resolver a primeira a parte da sua dúvida. Entretanto, consegue dar mais detalhes da segunda dúvida? Se puder postar um print do que você esta tentando fazer.

    Fabio

    #27761
    Alex_Barros
    Participante

    Não consegui resolver o problema. O segundo post é um comentário do primeiro.

    Eu tenho um dataframe em Pandas com tres colunas, quero pegar de cinco em cinco linhas (estou usando o rolling(5)) e clacular o desvio padrão de todos os dados de todas as colunas junto.

    Não estou conseguindo juntar tudo, geralmente calcula de cada coluna individualmente.

    #27799
    Alex_Barros
    Participante

    Vou tentar explicar o meu problema usando algumas telas do Excel.

    Se eu tenho uma série temporal em que são coletadas quatro dados de quatro sensores. A_1, A_2, A_3 e A_4 formando a seguinte tabela:

     

    #27807

    Olá Alex, acredito que não tenha carregado a imagem, mas você pode fazer o cálculo do desvio padrão dos 10 primeiros registros dessa forma:

    base[[‘Open’,’High’,’Low’,’Close’]].iloc[0:10].std()

    No qual temos o dataframe base especificamos as colunas [‘Open’,’High’,’Low’,’Close’] utilizamos o iloc() para recuperar os dados baseados na posição informando ao comando para começar no valor 0 até o 10 e acionamos a função std() que realiza o cálculo do desvio padrão.

    https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

    Fabio

    #27809
    Alex_Barros
    Participante

    Olá Fábio,

    Não deu certo. Eu mandei um e-mail para IA Expert com as figuras, você pode pedir para o Jones te repassr?

    Obrigado.

    #27827

    Olá Alex, peço que você tente carregar as imagens novamente, por favor. Clique no de carregamento de imagem  no menu.

    Teste de carregamento de imagem.

    Fabio

    #27832
    Alex_Barros
    Participante

    Vou tentar explicar melhor usando o Excel.

    Eu tenho uma série temporal em que são coletados quatro dados de quatro sensores diferentes: A_1, A_2, A_3 e A_4 resultando na seguinte tabela:

    Eu quero medir o desvio padrão de cada sensor de cinco em cinco períodos. No excel eu faço o seguinte:

    • Esta resposta foi modificada 7 meses, 3 semanas atrás por Alex_Barros.
    #27836
    Alex_Barros
    Participante

    Eu repito isso para todas as colunas para todos os sensores:

    Para as colunas individuais no Python eu estou usando o Pandas com o comando: df[‘std_A_1’] = df[‘A_1’].rolling(5).std()

    Agora vem o problema, eu quero calcular de 5 em 5 o desvio padrão de todas as colunas. No Excel eu faço assim:

    #27837
    Alex_Barros
    Participante

    E repito para todas as linhas:

    Como faço isso no Python para alimentar uma planilha no Pandas?

    Obrigado.

    #28003
    Alex_Barros
    Participante

    Olá,

    Alguma solução para esse problema?

    #28012

    Olá Alex, na respostas acima eu lhe passei uma referência de como obter o desvio padrão, entretanto, não posso lhe ajudar com o restante da implementação, devido ao volume de perguntas do fórum.

    Fabio

    #28015
    Alex_Barros
    Participante

    Fábio,

    Você pediu para passar figuras que explicassem melhor a minha dúvida, por isso detalhei o processo.

    Pelo visto a minha dúvida é mais complexa que o objetivo do fórum, por isso não vai ter a resposta?

    Pelo menos você sabe me falar se a função rolling funciona com o iloc?

    #28242

    Olá Alex, segue abaixo uma sugestão de código, entretanto, não tenho certeza se vai funcionar para o seu código:

    for i in range(len(base)):
    
        if i % 10 == 0:
            print(base[['Open','High','Low','Close']].iloc[0:i].rolling(i).std())

    Fabio

Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Você deve fazer login para responder a este tópico.