Olá, sabem indicar uma forma simples de encontrar a moda das variáveis de um data frame?
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 49
Podemos 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'] = notas
Agora, 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!