a unidades
1 condominio unidade
2 quartos unidade
3 suites unidade
4 vagas unidade
5 area m2
6 bairro localidade
7 preco Reais
8 pm2 Reais
a = pydados2.columns.tolist()b = ["unidade", "unidade", "unidade", "unidade", "m2", "localidade", "Reais", "Reais"]pydados2unidades = pd.DataFrame(b, a) #não sei pq precisei inverter a ordem das colunas, que estranho.pydados2unidades
0
condominio unidade
quartos unidade
suites unidade
vagas unidade
area m2
bairro localidade
preco Reais
pm2 Reais
c. Qual bairro possui a maior quantidade de apartamentos disponíveis? Qual medida de tendência central é essa?
Para isso utilizaremos a moda. Nem o R nem o pacote Pandas no Python possuem comandos específicos para descobrir a moda.
condominio 4600
quartos 3
suites 1.0
vagas 2.0
area 350
bairro Ipanema
preco 13600000
pm2 38857.14
Name: 436, dtype: object
E. Em que bairro se encontra o apartamento mais caro por metro quadrado? Qual o valor dos seus outros atributos?
#basicamente repetir o comando anterior, sugiro apagar a coluna pm2 e colocar os alunos para calcular o preço por m2 por eles mesmos.maiscaro2 =which.max(dados2$pm2) #achando o com maior valordados2$bairro[maiscaro2]
[1] "Copacabana"
dados2[maiscaro2, ]
condominio quartos suites vagas area bairro preco pm2
1532 1415 3 1 1 150 Copacabana 11500000 76666.67
condominio 4600
quartos 3
suites 1.0
vagas 2.0
area 350
bairro Ipanema
preco 13600000
pm2 38857.14
Name: 436, dtype: object
f. Qual o valor dos atributos que melhor representa um apartamento por bairro? Justifique. Em estatística, para determinar qual dado representa melhor um grupo de dados, utilizamos medidas de tendência central como média, moda ou mediana.
#Essa é um pouco "tricky", para ficar pequeno vou usar o comando for para repetir. #Além disso vou criar uma variável c com o nome das colunas. A princípio eu fiz boxplot para todas as variáveis mas não ficou legal, então vou usar moda para algumas e o boxplot com a média para as outras.#Também usei o ggplot2 para deixar o gráfico mais bonito.library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.3.3
#c = names(dados2)[sapply(dados2, is.numeric)] todas as variáveis, mas não ficou legal.c =c("condominio", "area", "preco", "pm2") #somente as variáveis que ficaram boasfor (var in c) { p <-ggplot(dados2, aes_string(x ="bairro", y = var, fill ="bairro")) +geom_boxplot() +stat_summary(fun = mean, geom ="point", shape =20, size =3, color ="white") +# Adiciona a média como um ponto brancotheme_minimal() +theme(axis.text.x =element_text(angle =45, hjust =1)) +labs(title =paste("Boxplot de", var, "por Bairro com Média"),x ="Bairro",y = var)print(p)}
Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation idioms with `aes()`.
ℹ See also `vignette("ggplot2-in-packages")` for more information.
#agora vou puxar a frequência de quartos, suites e vagas para descobrir as modas e as médias por bairro. Não ficou muito estético mas foi a melhor ideia q eu tive.bairros <-unique(dados2$bairro)resultadofinal =list()for(bairro in bairros) { dados_bairro = dados2[dados2$bairro == bairro, ] freq_quartos =table(dados_bairro$quartos) freq_suites =table(dados_bairro$suites) freq_vagas =table(dados_bairro$vagas) dadofrebairro =data.frame("1"=c(freq_quartos["1"], freq_suites["1"], freq_vagas["1"]),"2"=c(freq_quartos["2"], freq_suites["2"], freq_vagas["2"]),"3"=c(freq_quartos["3"], freq_suites["3"], freq_vagas["3"]),row.names =c("quartos", "suites", "vagas")) dadofrebairro[is.na(dadofrebairro)] <-0#neeessário para excluir os nas dadofrebairro$media <-rowMeans(dadofrebairro) #adicionadno a média como última coluna resultadofinal[[bairro]] <- dadofrebairro} resultadofinal
Esse eu não sei fazer em python. Vou ficar devendo hahaha.
g. Qual a variação de preços por bairro?
#eu até acho que tem o var aí funcionaria, mas eu preferi criar um dataframe.precomaximo =aggregate(preco ~ bairro, data = dados2, max)precominimo =aggregate(preco ~ bairro, data = dados2, min)names(precomaximo)[2] ="MaxPreco"names(precominimo)[2] ="MinPreco"precovar <-merge(precomaximo, precominimo, by ="bairro")precovar$Variacao = precovar$MaxPreco - precovar$MinPrecoprint(precovar)