Analisando os dados do Airbnb - 리우데자네이루 #5
Claro que como boa carioca escolhi os dados do meu RJ rs
Se vocèainda nèo conhece o Airbnb,saiba que essa empresa sóvem ganhando coraèo dos viajantes,mas caso vocènèo conheèa trago uma breve explicaèo do que o Airbnb of erece.
Airbnbéum serviço online comunitário para as pessoas anunciarem,descobrirem e reservarrem acomodaçes e meios de hospedagem.
O Airbnb permite aos indivíduos alugar todo ou parte de sua própria casa,assim os anfitriões conseguem transformar um cômodo extra ou uma casa extra em uma graninha.Ouma plataforma de busca e reservas entre a pessoa que oferece a acomoda o e a pessoa que busca pela loca çO. 사이트.
Vamos para as análises?
Vamos começar pelo nosso clássico import de bibliotecas,aqui como Vamos fazer apenas uma análise,acaba que não temos muitas bibliotecas para importar,mas espera sóvir posts de projetos de Machine Learning para vocês verem o quão cheia essa célula vai ficar rs
!pip install missingno
# importar os pacotes necessários
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import missingno as msno
# configurar as visualizações
sns.set_style('darkgrid')
sns.set_palette('Accent')
Ali em cima também fiz o!pip deuma bibliotecaque iremos utilizar para visualizar,através deum grá fico,colunascom dados faltantes do nosso 데이터 집합으로. O próximo passoécarregador os nossos dados para dentro de um DataFrame.
Como temos um arquivo csv,vamos utilizar o pd.csv, como mostro abaixo 읽기:
# obtendo os dados
data_path = 'http://data.insideairbnb.com/brazil/rj/rio-de-janeiro/2020-04-20/visualisations/listings.csv'
df = pd.read_csv(data_path)
df.head()
Além disso,como a funão.head()conseguimos mostras as 5 primeiras linhas do nosso DataFrame.Caso vocèqueira mostrar maisque 5 linhas,basta colocar a quantidade de linhas dentro dos par ènteses:) O 기본 da funè O é mostra apenas 5 linhas.Algo que gosto de acrescentar nos projetoséo Dicionário de Variáveis.Ele nos diz o queécada variável.Issoétimo para conhecermos melhor os nossos dados e com certeza vai nos ajudar nas análises.
Análise Exploratória de Dados
Nesse projeto eu fiz uma série de perguntas e fui respondendo com os códigos.Naépoca,eu estava iniciando os estudos e fazer isso me ajudou bastante a entender um pouco como uma análise deve ser feito,quais respostas eu devo trazer ao projeto.
Quantos atributos/variáveis/colunas e quantas entradas/linhas possui o nosso dataframe?
print('DIMENSÕES DO DATAFRAME:')
print(f'Linhas: {df.shape[0]}')
print(f'Colunas: {df.shape[1]}')
O.형상은 하나의 차원 데이터 상자를 대표한다.(linhas,colunas)Para acessar o primeiro elemento dessa tupla eu utilizei o[0]e Para acessar o segundo elemento utilizei o[1]junto do.모양
Quais sãos tipos de dados(dtypes)das nossas variáveis?
df.dtypes
df.dtypes.value_counts()
주인님데이터 형식 Returnauma série com o tipos de dado de cada coluna.Se voc êquiser saber quantas colunas de cada tipo de dados esse dataframe possui e n ão quer ficar contando na m ão, o mé todo를 이용합니다.value_counts()
Nosso 데이터 세트 possui valores ausentes?
df.isna().any()
df.isna().sum()
# visualização das entradas de cada coluna
msno.bar (df, figsize = (10,5));
#eliminando a colunaneighbourhood_group
df.drop('neighbourhood_group', axis=1, inplace=True)
Para“perguntar”ao dataframe se existe alguma coluna com valor NaN,utilizamos o.isna().임의().Ele iráreturnar True ou False para cada coluna.E para saber quantos valores ausentes cada coluna possui,utilizamos.isna().총 ()
Lembra da biblioteca missingno que importamos?Então,ela nos traz mais uma forma de visualizer os dados faltantes de cada coluna.
Comovimosanteriormente,nosso 데이터 집합possui35.870entradas.E analisando os valores ausentes no comando front notamas que a variável neighborhood_group não tem dados.Sendo assim,ela não acrescentaráem nada na nossa análise,com o.drop ()eliminei essa variáveldo 데이터 프레임워크.
Variáveis 조직선충
Vocèsabe o queéum histograma?
O Historograma,tambéméconhecido como distribuiçO de frequeuências,éa representaçO gráfica em colunas ou em barras de um concento de dados.Se vocêquer entender melhor sobre,clique aqui.
# análise visual das variáveis númericas através de um gráfico de frequências (histogramas)
df.hist(bins=15, figsize=(15,10));
Notamos que hándicios da presença de outliers nos nossos dados,como vemos nas colunas price,minimum_nights e calculated_host_listing_count.Um dos indícioséo fato de não conseguirmos visualizar uma distribuião porque possivelmente os outliers,se presents,estão distorcento a representação gráfica.
감지 예외 값
# visualizando um resumo estatístico das variáveis númericas
df[['price', 'minimum_nights', 'number_of_reviews', 'reviews_per_month', 'calculated_host_listings_count', 'availability_365']].describe().round(2)
Esse método traz muitas informaçãoes relevants para a análise exploratória.Como média das colunas,o valor mínimo e máximo,seus quartis e também o valor do desvio padrão.Muitas vezes conseguimos visualizar Possiveis outliers por aqui.Pontos principais da an álise feita através do método 설명:
상자선 그림das variáveisque possivelmente apresentam 이상값
Em estatística descriptiva,diagrama de caixa,diagrama de extremos e quartis,box plot ou box plotéuma ferramenta gráfica para representar a variaão de dados observados de uma variável numérica por meio de quartis.Wikipédia
상자선 그림 da variável minimum_nights
plt.figure(figsize=(15,3))
sns.boxplot(data=df, x='minimum_nights')
plt.title('Boxplot minimum_nights')
plt.show()
# ver quantidade de valores acima de 30 dias para minimum_nights
print(f'[minimun_nights]\nValores acima de 30:{len(df[df.minimum_nights > 30])} entradas')
print('Porcentagem: {:.4f}%'.format(len(df[df.minimum_nights > 30])/ len(df.minimum_nights)* 100))
Temos 224 entradas com minimum_nights acima de 30, oque는 0.62%의dos 벽판에 대응합니다.
상자 그림
plt.figure(figsize=(15,3))
sns.boxplot(data=df, x='price')
plt.title('Boxplot price')
plt.show()
# ver quantidade de valores acima de 1500 para price
print(f'[price]\nValores acima de 1500: {len(df[df.price > 1500])} entradas')
print('Porcentagem: {:.4f}%'.format(len(df[df.price > 1500])/ len(df.price) * 100)
Temos 3.360 entradascom Price acima de 1.500, oque는 9.36%의dos 벽판에 대응한다.
조직 절편 스캐너 렌즈 이상값
deposis de identificar os outliers,vamos plotar novatement o histograma para visualizearmos dados limpos.
# histogramas com valores de minimum_nights menor que 30 e price menor que 1500
df_clean = df.copy()
df_clean = df_clean.query('minimum_nights < 30 & price < 1500')
df_clean.hist(bins=15, figsize=(15,10));
Correlaçao existent entre as variáveis
Correlaçãoéa relaço estatística entre duas variáveis.coeficientes de correlaço são métodos estatísticos para se medir as relaçes entre variáveis.
Calculamos o coeficiente de correlaço com a funço.corr()
Irei apresentar essa correlaço através de uma matriz e de uma forma mais visual através de um heatmap(mapa de calor).
corr = df_clean[['price', 'minimum_nights', 'number_of_reviews', 'reviews_per_month',
'calculated_host_listings_count', 'availability_365']].corr()
#plotando a matriz de correlação
sns.set_context("notebook", font_scale=1.0, rc={"lines.linewidth": 2.5})
plt.figure(figsize=(10,5))
#criando uma máscara para ver apenas os valores de correlação uma vez
mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask, 1)] = True
a = sns.heatmap(corr, mask=mask, annot=True, fmt='.2f')
rotx = a.set_xticklabels(a.get_xticklabels(), rotation=90)
roty = a.set_yticklabels(a.get_yticklabels(), rotation=30)
알루가도?
# a quantidade de cada tipo de imóvel disponível
df_clean['room_type'].value_counts()
# porcentagem de cada tipo de imóvel disponível
df_clean['room_type'].value_counts() / len(df_clean)
Qualéa localidade mais cara?
# média de preço do top 10 localidades mais caras
df_clean.groupby('neighbourhood')['price'].mean().sort_values(ascending=False)[:10]
# contagem de imóveis por localidade
df_clean['neighbourhood'].value_counts()
관찰: Como podemos ver existem bairroscommais imóveis alugados, oque pode influenciar diretamente na média de pre ços por localidade.
Plotando os imóveis pela 위도 경도
df_clean.plot(kind='scatter', x='longitude', y='latitude',
alpha=0.4, c=df_clean['price'], s=8, cmap=plt.get_cmap('jet'),
figsize=(12,8));
결론:
콘타토스:
Reference
이 문제에 관하여(Analisando os dados do Airbnb - 리우데자네이루 #5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/beatrizmaiads/analisando-os-dados-do-airbnb-rio-de-janeiro-5-549h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)