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: Desvio padrão
- Este tópico contém 14 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 7 meses atrás por Fábio Spak.
- AutorPosts
- 19 de fevereiro de 2021 às 05:15 #27710
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.
19 de fevereiro de 2021 às 10:52 #27712Esqueci 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.
22 de fevereiro de 2021 às 20:07 #27750Boa 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
24 de fevereiro de 2021 às 12:03 #27761Nã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.
1 de março de 2021 às 10:09 #27799Vou 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:
1 de março de 2021 às 22:25 #27807Olá 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
2 de março de 2021 às 09:42 #27809Olá 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.
3 de março de 2021 às 22:47 #27827Olá 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
4 de março de 2021 às 06:10 #27832Vou 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 3 anos, 8 meses atrás por Alex_Barros.
4 de março de 2021 às 06:20 #27836Eu 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:
4 de março de 2021 às 06:20 #27837E repito para todas as linhas:
Como faço isso no Python para alimentar uma planilha no Pandas?
Obrigado.
20 de março de 2021 às 11:39 #28003Olá,
Alguma solução para esse problema?
21 de março de 2021 às 16:11 #28012Olá 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
22 de março de 2021 às 05:10 #28015Fá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?
5 de abril de 2021 às 22:51 #28242Olá 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
- AutorPosts
- Você deve fazer login para responder a este tópico.