O desafio foi montar um case através de uma experiência Data Driven com os meus dados pessoais em aplicativos de uso diário.
Scrum e Kanban
Jupyter Notebook
Python (Descartes, Geopandas, Geopy, Pill, Pandas, Numpy, Seaborn, Wordcloub, além dos módulos json e glob)
Tableau
Após um brainstorm e reavaliação do projeto para conclusão do módulo 5, no VamoAI, selecionei as bases de dados que gostaria de
acrescentar e que seriam viáveis, que teriam dados suficientes.
Fiz o tratamento dos dados no Jupyter Notebook. Acrescentei algumas colunas com períodos do dia separados, que me ajudariam no
momento da visualização. Corrigi tipos de dados de algumas variáveis, verifiquei dados nulos e eliminei colunas que não pretendia
utilizar.
As bases de dados que escolhi foram:
- Spotify
- iFood
- Uber
- Youtube
- Google Maps
Não dei continuidade à apresentação dos dados do Maps, devido insuficiência do volume de dados. Porém, tratei os dados e tentei
extrair informações úteis. O notebook do maps está em anexo no reporitório junto aos demais.
-
Para acessar a análise exploratória dos dados clique aqui.
-
Para acessar os painéis com maior detalhamento e interatividade acesse o meu perfil no Tableau Public e o case.
Nuvem de palavras com máscara usando a logo do iFood
Código
# Indicando o caminho, na minha máquina, onde estão as imagens (máscara e imagem base)
local = path.dirname(__file__) if "/home/mchll/my_project_dir/my_project_env/preparacao_projeto_5/images/ifood-3.png" in locals() else os.getcwd()
image_mask = np.array(Image.open(path.join(local, "/home/mchll/my_project_dir/my_project_env/preparacao_projeto_5/images/ifood-3.png")))
# Stopwords: conjunto de strings ou None. As palavras que serão eliminadas.
# Se None, a lista STOPWORDS integrada será usada.
stopwords = set(STOPWORDS)
stopwords.add("said")
# Definindo detalhes da imagem
cloud = WordCloud(background_color="white", max_words=2000, mask=image_mask,
stopwords=stopwords, width=900, contour_width=5, contour_color='red', colormap='Dark2').generate(restaurantes)
# Escolhendo o arquivo que receberá a máscara
cloud.to_file(path.join(local, "restaurantes_ifood_michelle_2.png"))
# Plotando a nuvem + máscara
plt.imshow(cloud, interpolation='bilinear')
plt.axis("off")
plt.figure()
plt.imshow(image_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis("off")
# Exibindo a imagem
plt.show()
# Salvando a imagem com a máscara
#wordcloud.to_file("restaurantes_ifood_michelle_3.png");
Imagem gerada
Alura | Formação Python para Data Science
A Practical Guide for Data Analysis with Pandas
Converting nested json structures to pandas dataframes
Customizing Colorbars
Geopandas
Insightlab
Kejisen - Tech Forest
Matplotlib
Pandas.pydata.org - json_normalize
Seaborn Documentation
Storytelling with Data
Tutorial flatten nested json in pandas
WordCloud Documentation