Explorando os dados das bibliotecas de São Francisco
Conhecer e questionar os dados que irá analisar é uma das etapas iniciais de um projeto de ciência de dados. Entender os dados e suas relações é essencial para futuras análises mais aprofundadas.
“A análise exploratória de dados (AED) é uma abordagem à análise de conjuntos de dados de modo a resumir suas características principais, frequentemente com métodos visuais.” Fonte
Durante este artigo abordarei como explorei o conjunto de dados do sistema de bibliotecas de São Francisco.
Se quiser ver todo o notebook, acesse o projeto no meu Github.
Sumário:
- Conjunto de dados;
- Questionamentos:
- Quais são os tipos de usuários e sua quantidade?
- Quais são as faixas etárias dos usuários e a sua quantidade?
- Quais são as bibliotecas e qual a quantidade de usuários por bibliotecas?
- Quantos empréstimos foram realizados? Por tipo de usuário e por biblioteca.
- Quantas renovações foram realizadas? Por tipo de usuário e por biblioteca.
- Quais são os tipos de recebimento de aviso? Qual a quantidade de usuários que preferem cada tipo? Quais são os tipos de usuários que preferem cada tipo?
- Como está distribuída a frequência de usuários que fornecem endereço de email? Quem são os usuários que não fornecem?
- Qual a quantidade de usuários que não são de São Francisco?
- Qual a quantidade de usuários que não realizam empréstimos a mais de 1 ano?
- Qual a distribuição da quantidade média de empréstimos realizados por ano por tipo de usuário?
- Há uma correlação entre o número de empréstimos e de renovações?
Bora lá?!
Conjunto de dados
Encontrei esse conjunto inicialmente no Kaggle, mas estarei utilizando os dados do Portal de dados da cidade de São Francisco.
O conjunto de dados inclui aproximadamente 420.000 registros, com cada registro representando um usuário anônimo da biblioteca. As colunas individuais incluem estatísticas sobre o código de tipo e idade do usuário, o ano em que o usuário se registrou (somente desde 2003) e a intensidade com que o usuário tem utilizado o sistema de biblioteca (em termos de número de checkouts) desde o primeiro registro (Resumo extraído do Kaggle).
Importei os dados e visualizei a tabela completa:
De início, usei a função .info() e tive as informações de cada variável, qual o seu tipo de dado, qual a quantidade de dados não nulos, tamanho total do arquivo…
Quais são os tipos de usuários?
Responder esse questionamento é fácil e listei os valores únicos da coluna, com o .unique()
Além disso, realizei a contagem dos dados com o .value_counts():
O tipo de usuário Friends for life, faz parte de um programa da biblioteca de levar os livros para as pessoas que possuem alguma deficiência e os impedem de chegar a ela.
Agora estes tipos com o “At user”, pareceram ser duplicados em relação aos demais.
Mesmo com o dicionário de dados disponibilizado pela instituição, não havia informações a respeito disso.
Então transformei eles nos demais tipos:
E para entender como se deu a distribuição total, fiz uma tabela de frequência:
Nesta fase em alguns casos apenas com tabelas e cálculos já é possível entender melhor os dados.
Mas também é possível visualizarmos através de gráficos, mas simples.
Não foi o foco deste projeto criar visualizações, por isso elas não foram aperfeiçoadas.
Quais são as faixas etárias dos usuários?
Listei novamente a variável e encontrei alguns que não foram respondidos:
Por isso preenchi os dados nulos com o .fillna()
E elaborei a tabela outra tabela de frequência:
Tipos de usuários X Faixas etárias
Fiquei curioso em saber como estava classificada as faixas etárias pelos tipos de usuários.
Por isso, criei uma tabela agrupando os valores e somando por tipo e faixa etária:
A partir dela, pivotei a tabela com o pd.pivot_table() (se você quiser saber mais sobre o “pivot”, confira esse artigo) e…
Não entendi.
Como podem adultos estarem dentro da faixa de 0–9 anos e 65–74?
Ou o tipo “Senior” entre 0–9, 10–19 e 20–24 anos?
Pesquisei a respeito, não encontrei. Mandei e-mail para o contato responsável informado pelo site e ainda não obtive resposta.
Decidi não dar continuidade à análise pelo ponto de vista da idade.
Quais são as bibliotecas e quantos usuários possuem?
Listei as bibliotecas que fazem parte do sistema:
E montei a tabela de frequência pela quantidade de usuários:
A biblioteca principal abrange aproximadamente 30% de todos os usuários, com as demais abaixo de 6%.
Quantos empréstimos foram realizados?
Em relação aos empréstimos eles se mantiveram em torno da proporção da quantidade de tipo de usuários:
Já pelas bibliotecas, a quantidade de empréstimos se distribuiu um pouco mais:
Mesmo a biblioteca principal possuindo a quantidade de 30% dos usuários totais, apenas 20% de todos os empréstimos foram dela.
Quantas renovações foram realizadas?
As renovações também mantiveram o padrão:
E para as bibliotecas elas também mantiveram o padrão da quantidade dos empréstimos:
Quais são os tipos de recebimento de aviso?
Listei os 4 disponíveis:
Verifiquei a frequência entre estes:
Também agrupei os tipos de usuários para ver quais eram as preferências:
Todos eles têm a maior quantidade na preferência por e-mail.
Como está distribuída a frequência de usuários que fornecem endereço de e-mail?
Dentre o total aproximadamente 20% não fornecem o e-mail.
Ok! Temos aproximadamente 23,5% de usuários que preferem aviso sem ser pelo e-mail.
Mas verifiquei se teria usuários que não fornecem o e-mail e solicitam aviso por ele.
E adivinha? Tinha:
Dados não consistentes que precisaríamos de mais informações dos criadores para entender esses pontos.
Qual a quantidade de usuários que não são de São Francisco?
15% dos usuários não residem em São Francisco.
Quantos novos usuários entraram a cada ano?
O último ano que contabilizei no dataset é de 2016, portanto realizei o cálculo a partir desta data, contabilizando a variável de último ano de atividade.
Criei a tabela de frequência:
E plotei o gráfico:
A maior quantidade de novos usuários em 2003, possivelmente seja pela implantação do sistema neste ano.
Ao decorrer dos anos o crescimento de novos usuários foi sempre positivo e tivemos um decréscimo em 2016. Possivelmente deve ter sido um atraso no processamento, por serem dados do próprio ano de contagem.
Qual a quantidade de usuários que não realizaram empréstimos ?
Houveram usuários que durante todo o período não fizeram empréstimos na biblioteca.
Aproximadamente 16% deles.
Qual a quantidade de usuários que não realizam empréstimos a mais de 1 ano ?
Por outra perspectiva agora.
Além dos 16% sem atividade, em torno de mais 33% dos usuários não realizaram empréstimos no último ano.
Apenas metade da quantidade total dos usuários estão ativos.
Aproximadamente 16% deles.
Qual a distribuição da quantidade média de empréstimos realizados ao ano e por tipo de usuário?
Quis entender qual era a quantidade média de empréstimos realizados por ano dentre os tipos de usuários.
Para isso, selecionei os dados que precisava:
Adicionei uma coluna com a quantidade média de empréstimos, contabilizando desde o ínicio do registro na biblioteca:
Fiz um .copy() porque é necessário para que não tenhamos problemas com a ordem da indexação no fatiamento do DF. Você pode ler mais a respeito na documentação e nesse artigo do Paulo Vasconcellos.
Só de olhar a tabela total, podemos perceber uma grande variação:
Enquanto teve uma pessoa que teve em média 2564 empréstimos por ano, outra não teve nenhuma.
Para ser sincero esse número é estranho, seriam aproximadamente 7 livros por dia de empréstimo. Mesmo que contabilizem revistas e artigos…
De qualquer forma, todos os demais tiveram uma grande quantidade de outliers, como podemos observar neste gráfico:
Como já falei, a ideia é entender os dados, para em um segundo momento desenvolver visualizações mais aperfeiçoadas.
Por isso, apenas irei cortar para que possamos dar um zoom nele:
Podemos observar que a maior concentração fica até no máximo entre 25 a 225.
Há correlação entre o número de empréstimos e de renovações?
Comparando as duas variáveis, há uma moderada correlação:
De acordo com a correlação de Pearson.
O que podemos observar é que na “média” existe uma relação, mas não necessariamente direta. Principalmente devido aos outliers.
Como você pode observar no gráfico abaixo:
Considerações finais
Muitas questões foram exploradas sobre estes dados.
Mas a relação entre a faixa etária e os tipos de usuários, ficaram sem respostas. Caso ainda voltem a responder, avisarei por aqui o que ocorreu.
Este foi um exemplo de uma primeira análise com o objetivo de explorar os dados iniciais. Fica aberto para que outras pessoas desenvolvam novas perspectivas baseadas nesta ou em outras perspectivas próprias.
E você, se animou em explorar novos conjuntos de dados?
Ou mesmo esse aqui.
Compartilha comigo suas análises.
Se você chegou até aqui e curtiu, dê o claps, compartilhe e se inscreva para me acompanhar.
Não somente em análises de dados, na tecnologia…
Ainda há muito a se explorar…