Painel para análise de dados
Um passo a passo do painel da Udemy que me rendeu uma oferta de emprego de um dos maiores nomes da publicação acadêmica.
Painel comparando a plataforma de hospedagem MOOC Udemy com seu concorrente, Edx, afiliado ao MIT. Crédito: Autor.
Nesta e em qualquer outra plataforma eu propositadamente evito meta conteúdo, ou seja, conteúdo sobre conteúdo com o propósito de ser, bem, conteúdo.
Então, espero que me dê licença enquanto quebro essa regra por um segundo.
Depois de escrever consistentemente por alguns meses, fiquei chocado e humilde ao ver uma de minhas histórias superando as outras.
Para acreditar nos dados da minha história, você provavelmente encontrou esta peça depois de ler sobre meus esforços para compilar projetos pessoais e a lição que aprendi quando fui longe demais. Se ainda não leu, sinta-se à vontade para dar uma lida.
Depois de ver os produtos acabados incluídos na história, alguns comentaristas solicitaram o código para os painéis, incluindo meu dash da Udemy .
Abaixo, incluirei um link para o Jupyter Notebook contendo o código que usei para criar visualizações no Tableau.
No entanto, também gostaria de mostrar o que você não obterá apenas olhando o código: Meu processo. Isso inclui aspectos de fonte de dados, codificação, visualização e elementos de narrativa de dados.
Sinta-se à vontade para acompanhar e espero que isso o inspire a tentar algo semelhante.
Isenção de responsabilidade: o que se segue é uma visão geral do meu processo, não uma replicação passo a passo. Se você deseja obter mais informações sobre a programação por trás deste projeto, sinta-se à vontade para verificar o código .
As ferramentas
- Python
- SQL
- Tableau (Tableau Public, já que não tenho uma assinatura do Tableau Desktop)
- GCP
- tendências do Google
Os passos
- Dados de origem (CSVs do Kaggle e da IU do Google Trends)
- Crie um conjunto de dados do BigQuery e tabelas associadas
- Consultar dados usando Python/BQ API
- Enviar CSV finalizado para o Google Drive
- Conecte-se a CSVs limpos usando o Tableau Public
- Análise
- Visualização
1. Dados de origem
dados MOOC
Apesar do meu conselho para evitar o Kaggle quando se trata de fornecer dados, encontrei um ótimo conjunto de dados que forneceu informações sobre o comportamento do usuário do MOOC que simplesmente não consegui encontrar em nenhum outro lugar.
Eu encorajo você a explorar o conjunto de dados no Kaggle . Eu também usei este conjunto de dados para Udemy , especificamente, e este para Edx.
Baixei o conjunto de dados e o li usando o Pandas.
Lendo dados CSV em um quadro de dados Pandas. Imagem cortesia do autor.
Dados do Google Trends
Se você não sabe, o Google Trends é uma mina de ouro para dados comportamentais.
Você pode achar que não pode obter muitos dados de consultas de pesquisa e volumes de pesquisa, mas, se estudado de perto, há muito a ser aprendido sobre a natureza humana.
Na verdade, o autor Seth Stephens-Davidowitz escreveu um livro inteiro usando os dados do Google Trends como fonte principal, um trabalho que eu recomendo fortemente .
Para este projeto, eu queria comparar a popularidade relativa das pesquisas para duas plataformas de hospedagem MOOC: Udemy e Edx.
A Udemy tende a ser popular para criadores de cursos independentes, enquanto a Edx tende a hospedar conteúdo afiliado a universidades e corporações.
Eu simplesmente comparei o tráfego para os termos “Edx” e “Udemy” nos últimos 5 anos, uma das opções que você pode selecionar na interface do usuário.
Saída da IU do Google Trends para comparação de palavras-chave “Edx”/”Udemy”. Imagem do autor.
Para gerar um CSV, você pode simplesmente baixar os resultados de sua consulta do Google Trends.
2. Criar conjunto de dados e tabelas
Embora você possa realizar análises de dados usando Pandas, se estiver buscando uma trilha de analista de dados, recomendo usar SQL para se sentir confortável com instruções DML.
Observação: no código que forneci, usei o SQL Lite. Agora recomendo usar um serviço de armazenamento baseado em nuvem como o GCP (ou AWS/Azure) para armazenar e consultar seus dados; habilidades baseadas em nuvem são simplesmente mais comercializáveis agora.
Para fins educacionais, criei tabelas no BigQuery para demonstrar que é possível obter um resultado final semelhante.
A computação em nuvem continua a ser uma habilidade valiosa em análise de dados, engenharia de dados e ciência de dados. Mostre um pouco, se você for qualificado.
No BigQuery, criaremos um conjunto de dados para hospedar todos os CSVs associados ao traço final.
Etapa de criação de tabela no BigQuery. Imagem cortesia do autor.
Vamos chamar o conjunto de dados de “mooc”. Simples o suficiente.
Criando um conjunto de dados no GCP BigQuery. Imagem cortesia do autor.
Recomendo reservar um tempo para criar seu próprio esquema, em vez de depender do GCP para inferir e gerar automaticamente seu esquema.
Todos os seus nomes de campo e nomes de coluna estarão de acordo com suas especificações.
Se você quiser levar o design do esquema para o próximo nível, escrevi uma função rápida para gerar automaticamente um esquema do BigQuery que economiza algum trabalho manual.
Como prática recomendada, particione e agrupe sua tabela adequadamente, supondo que armazenaremos essa tabela por um longo prazo.
3. Consultar/manipular dados
Abra seu IDE favorito; é hora de codificar!
Importe as bibliotecas necessárias, autentique-se na API do BigQuery (certifique-se de que ela esteja ativada no console do GCP) e faça sua primeira consulta.
Podemos usar uma combinação de Pandas e SQL para gerar quadros de dados com os quais você pode trabalhar.
Use o seguinte one-liner para executar sua consulta e converta imediatamente em um quadro de dados Pandas (nome do projeto redigido por segurança).
import google.cloud.bigquery
import pandas as pd
import config as cfg
import os.environ
[ "GOOGLE_APPLICATION_CREDENTIALS" ] = cfg.creds
query_string = """
SELECT title, price, course_effort, n_enrolled, Institution
FROM `***** **.mooc.edx_course_descriptions` WHERE assunto == 'Ciência da Computação'
ORDER BY preço DESC LIMIT 15
"""
bq_client = bigquery.Client()
df = bq_client.query(query_string).to_dataframe()
Data frame contendo dados dos cursos de informática. Imagem cortesia do autor.
Como eu, seus primeiros momentos ao encontrar esses dados devem ser extremamente abertos. Não vá muito fundo em insights ainda.
Basta escrever as consultas que você acha que produzirão resultados interessantes.
Aqui estão algumas perguntas iniciais (alguns resultados foram incorporados ao produto final).
# Total Program Enrollment Data Analysis
"""
SELECT SUM(n_enrolled) AS total_program_enrollment, COUNT(title) AS num_courses, AVG(price) AS avg_course_purchase, MIN(price) AS min_course_purchase, MAX(price) AS max_course_purchase
FROM `**** ***.mooc.edx_course_descriptions`
WHERE subject == 'Data Analysis & Statistics'
ORDER BY price DESC
"""
# Total EDX Enrollment
"""
SELECT SUM(n_enrolled) AS total_edx_enrollment, COUNT(title) AS total_courses, AVG(price ) AS total_avg
FROM `*******.mooc.edx_course_descriptions`
ORDER BY price DESC
"""
# Faixas de preços (divididas por porcentagem)
"""
SELECT price,COUNT(preço) AS subject_count,
100 * COUNT(preço) / (SELECT COUNT(*) FROM udemy_updated) AS price_pct
FROM `********.mooc.udemy_updated`
GROUP BY price
ORDER BY price_pct DESC LIMIT 10
"""
Gráfico que acompanha a porcentagem de cursos oferecidos a um determinado preço. Imagem cortesia do autor.
Depois de sentir que tem de 3 a 5 insights atraentes, você tem o suficiente para preencher um painel sem sobrecarregá-lo.
Para obter orientação sobre o design de visualização de dados, recomendo contar histórias com dados como ponto de partida. Eu abracei várias de suas lições neste design.
4. Envie CSV para o Google Drive e conecte-se ao Tableau
Como o Tableau nos permite conectar ao Google Drive, é aqui que armazenaremos os CSVs finalizados que podemos usar.
Observação: no Tableau, você também pode usar SQL para consultar seus dados diretamente. Estou, por falta de termo melhor, “pegando o caminho mais longo” para chegar ao mesmo destino. Eu só quero garantir que você possa replicar e explorar as etapas que serão mais impressionantes para um entrevistador do que simplesmente arrastar e soltar dados na interface do usuário do Tableau.
Podemos usar o Pandas para criar um CSV e aproveitar o cliente Python do Google Drive para exportar os dados resultantes para o Drive.
No Tableau Public, posso criar uma conexão com o Google Drive selecionando a guia "dados".
Supondo que você tenha adicionado com sucesso seu CSV ao seu Drive, você verá seus arquivos aqui.
Depois de criar uma conexão, você verá suas variáveis aparecerem na barra lateral.
O Tableau é uma plataforma muito intuitiva porque você literalmente poderá arrastar e soltar esses campos para criar as visualizações que você incluirá no painel final.
5. Análise
Ao contrário das outras partes deste processo, as habilidades técnicas por si só não resultarão na condução e transmissão de uma análise eficaz.
Em vez disso, nesta etapa do processo, você deve pensar nas necessidades de seu público, especificamente, quais percepções ajudarão a orientar as principais decisões de negócios.
Em qualquer função de Business Intelligence, com a contribuição das partes interessadas, você desenvolverá uma compreensão de quais insights deseja comunicar e o que, exatamente, eles precisam “obter” dos dados que você está preparando para eles.
Ao criar um projeto pessoal, isso me ajuda a manter em mente um cenário de negócios hipotético.
Nesse caso, eu queria explorar métricas relacionadas ao conteúdo do MOOC.
Achei que, como estava entrevistando uma empresa que trabalhava com universidades, esses dados seriam próximos o suficiente do que encontraria no trabalho.
Para o meu problema de negócios, eu queria comparar os fatores que impulsionaram o engajamento para duas das plataformas MOOC mais populares: Udemy e Edx.
Antes de escrever uma linha de código, eu sabia que queria olhar para:
- Volume de pesquisa ao longo do tempo
- Preços
- Taxas de conclusão
- Proporção de custo para conteúdo (ou seja, pago US$ 20 por 10 horas de conteúdo)
Concentrar minha análise em apenas algumas métricas específicas me ajudou a criar uma apresentação concisa e precisa que demonstrou ao meu entrevistador que eu sabia como obter valor comercial de várias fontes de dados diferentes.
6. Visualização
A parte difícil de criar um painel não é escolher o que incluir; é decidir o que excluir.
Os gráficos que incluí não são nada de especial.
Eles são principalmente gráficos de dispersão e gráficos de linha, como você pode ver neste exemplo:
Gráfico de série temporal do Tableau para palavras-chave Edx x Udemy. Dados cortesia do Google Trends. Imagem cortesia do autor.
No entanto, o que acho que fiz bem foi contar uma narrativa coerente.
Em vez de cometer o painel equivalente a “morte pelo PowerPoint”, usei blocos de texto com moderação, deixando os dados falarem.
Embora eu pudesse ter colocado tudo em negrito (tudo é importante, certo?), só coloquei em negrito três frases que incluíam pontos de análise competitiva.
Exemplo:
“Quase 25% dos cursos da Udemy custam US 20, o que é US 20 a menos do que o curso mais barato da EDX.”
Um dos princípios que aprendi na escola de jornalismo me ajudou a determinar como comunicar esses insights.
Meus professores enfatizavam constantemente a necessidade de simplificar as informações, especialmente quando se tratava de números.
Observe que usei a palavra “quase”. Dizer “quase 25%” soa melhor do que “23,4 por cento dos cursos da Udemy” porque, como público, estamos acostumados a números redondos e simples.
Por fim, escolhi um esquema de cores que permitisse a comparação. Observe como usei a barra magenta no gráfico de barras para enfatizar um valor atípico, “instrumentos musicais”.
O outro benefício desse esquema de cores é que ele não envolve vermelho ou verde, tornando-o visualmente amigável para quem tem daltonismo; aqueles que não estão acostumados com o design visual muitas vezes ignoram a importância da acessibilidade.
No final, eu sabia que queria evitar erros cometidos ao projetar iterações anteriores do painel: sobrecarregar meu visualizador com muitas informações.
Estou confiante de que, embora você possa encontrar aspectos que eu poderia melhorar, é evidente que deixei espaço em branco suficiente e “espaço para respirar” para torná-lo digerível e útil para qualquer pessoa que tente usá-lo para obter uma visão baseada em dados.
Remover
Eu já disse isso antes, mas o simples ato de ter um projeto para apresentar em uma entrevista vai impressionar o entrevistador, quer ele tenha pedido ou não.
Se você está buscando análise de dados, um painel é um acéfalo quando se trata de projetos pessoais.
No entanto, também sugiro que os engenheiros de dados criem pelo menos um painel, mesmo que apenas para demonstrar o que o trabalho deles permite.
Ao criar qualquer visualização, lembre-se de mantê-la simples, atraente e, acima de tudo, conhecer seu público.