Olá, sabem indicar uma forma simples de encontrar a moda das variáveis de um data frame?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, sabem indicar uma forma simples de encontrar a moda das variáveis de um data frame?
Boas Naiane, tudo bem? Espero que sim!
Existe uma forma bastante simples. Vamos criar um DataFrame e verificar como fazê-lo:
Antes de tudo vamos importar as bibliotecas que vamos usar:
import numpy as np
import pandas as pd
Primeiro, vou gerar 500 números aleatórios que vão representar faltas:
np.seed = 101
faltas = np.random.randint(0,100, 500)
Eu 'setei' o seed caso queira reproduzir o código, assim terá o mesmo resultado que eu.
Agora vamos adicionar esses números em um DataFrame:
df = pd.DataFrame(faltas, columns=['Faltas'])
Até agora, temos um dataframe dessa forma:
Faltas
0 97
1 93
2 84
3 43
4 49Podemos acessar a moda da coluna a partir de:
df['Faltas'].mode()Que resulta em:
77.
Outra forma de acessar a moda, é pelo DataFrame inteiro.
Mas antes vamos adicionar mais uma coluna, dessa vez de notas que vão de 0 a 10.
notas = np.random.randint(0,10, 500)
df['Notas'] = notasAgora, nosso dataframe possui duas colunas:
Faltas Notas
0 97 8
1 93 5
2 84 6
3 43 3
4 49 2 E podemos acessar a moda do DataFrame através de:
df.mode()Que resulta em:
Faltas Notas
0 77.0 0
1 NaN 6 Mas porque temos um Resultado NaN?
Se verificarmos a moda da coluna Notas, será retornado:
0 0
1 6 O que significa que a moda da coluna é bimodal, ou seja, existem dois valores que aparecem o mesmo número de vezes.
Em resumo, pode-se usar df['Coluna'].mode() para acessar a moda de uma coluna ou df.mode() para acessar do DataFrame inteiro.
Espero ter ajudado! Bons Estudos!
Boas Naiane, tudo bem novamente? Espero que sim.
Percebi apenas agora que a pergunta em questão trata-se da linguagem R. Nesse caso, vou deixar a resposta acima caso algum outro aluno esteja com a mesma dúvida que você em Python e agora vou explicar como fazê-lo em R.
O R padrão não possui uma função que calcula moda nativamente, então, existem duas possibilidades: criar uma função que faz o calculo ou usar uma biblioteca que possua essa implementação, como você pediu por uma forma simples, vamos trabalhar com essa segunda.
A biblioteca que iremos usar chama-se DescTools, sua documentação, infelizmente está disponível somente em inglês, mas sinta-se a vontade para usá-la como base de seus estudos e código.
Para instalar a biblioteca, basta usar o seguinte código no terminal do R:
install.packages("DescTools")
Após isso, o R abrirá uma caixa de aviso por ser uma biblioteca de terceiros, assim como você deverá selecionar um local de onde fazer o download. Recomendo São Paulo, ou qualquer localidade disponível que seja próxima da sua localização.
Antes de mais nada, precisamos adicio****nar a biblioteca para nosso cóigo:
library ("DescTools")
Agora, vamos criar um data frame:
data_frame = data.frame(col1 = c("b", "b", "d", "e", "e") ,
col2 = c(0, 2, 1, 2, 5),
col3= c(TRUE, FALSE, FALSE,
TRUE, TRUE))
que resulta em:
col1 col2 col3
1 b 0 TRUE
2 b 2 FALSE
3 d 1 FALSE
4 e 2 TRUE
5 e 5 TRUE
Agora, para a moda de uma das colunas do Data Frame, podemos usar a função Mode() do pacote DescTools. Segue exemplo:
Mode(data_frame$col3)
que retorna:
[1] TRUE
attr(,"freq")
[1] 3
Ou seja, a moda dessa coluna é o valor True, com 3 ocorrências.
Caso queria executar para todo o DataFrame, pode se fazer da seguinte maneira:
sapply(data_frame, Mode)
que retornará:
$col1
[1] "b" "e"
attr(,"freq")
[1] 2
$col2
[1] 2
attr(,"freq")
[1] 2
$col3
[1] TRUE
attr(,"freq")
[1] 3
Essa função retorna valor(es) mais frequente(s) para cada coluna, ainda que seja bimodal ou multimodal.
Espero ter ajudado!
Bons estudos!