#!/usr/bin/env python # coding: utf-8 # # Análise de Dados de Empresa de Telecomunicações # ## Entendendo a Situação Atual # Você é um Analista de Dados em uma empresa de telecomunicações que fornece serviços de internet e telefonia. Recentemente, você teve acesso a dados históricos que indicam que a empresa perdeu 26% dos seus clientes nos últimos trimestres. Essa perda significativa de clientes impactou negativamente as finanças da empresa, gerando um prejuízo de milhões de reais. # ## Desafio # O seu próximo desafio como Analista de Dados é identificar a principal causa do problema, para que você possa propor um plano de ação para resolvê-lo. # ## Base de Dados # Este é o link do Google Drive para a base de dados que será analisada: # # - https://drive.google.com/drive/folders/1T7D0BlWkNuy_MDpUHuBG44kT80EmRYIs?usp=sharing # # Este é o link original no Kaggle: # - https://www.kaggle.com/radmirzosimov/telecom-users-dataset # ## Divisão do Problema # 1. Importar a base de dados com o pandas # 2. Visualizar a base de dados # 1. Identificar quais informações estão disponíveis # 2. Identificar dados problemáticos # 3. Tratar os dados # 1. Converter os valores para os tipos de dados corretos # 2. Eliminar valores vazios (informações que não ajudam, atrapalham) # 4. Analisar os dados parcialmente # 5. Analisar os dados de forma completa # ### Importar a Base de Dados # In[1]: # Importa o pandas com o apelido pd import pandas as pd # Importa o arquivo df_clientes = pd.read_csv('telecom_users.csv') # ### Visualizar a Base de Dados # In[2]: # Exibe o dataframe df_clientes # #### Identificar Informações Disponíveis # In[3]: df_clientes.info() # #### Identificar Dados Problemáticos # - A primeira coluna contém dados que não nos interessam # - A última coluna é de valores vazios # - A coluna de total gasto contém valores numéricos formatados como textos # - As colunas Dependentes e Churn contém cada uma um valor vazio # ### Tratar os Dados # #### Remover Colunas Irrelevantes # In[4]: # Remove a coluna Unnamed: 0 df_clientes.drop('Unnamed: 0', axis='columns', inplace=True) # Exibe o dataframe display(df_clientes) # #### Converter os Dados para os Tipos Corretos # In[5]: # Converte os dados da coluna Total Gasto para float df_clientes['TotalGasto'] = pd.to_numeric(df_clientes['TotalGasto'], errors='coerce') # Obtém informações do dataframe df_clientes.info() # Com este novo dataframe, notamos que a coluna **TotalGasto** possuía 10 linhas com dados incorretos (textos). Por isso, eles foram removidos. # #### Remover Colunas e Linhas com Valores Vazios # In[6]: # Remove todas as colunas que só possuem valores vazios df_clientes.dropna(how='all', axis='columns', inplace=True) # Remove as linhas que contém pelo menos um valor vazio df_clientes.dropna(how='any', axis='index', inplace=True) # Exibe o dataframe df_clientes # In[7]: df_clientes.info() # ### Análise Inicial # In[8]: # Exibe uma contagem dos valores únicos da coluna Churn df_clientes['Churn'].value_counts() # In[9]: # Exibe a distribuição percentual dos valores únicos da coluna Churn df_clientes['Churn'].value_counts(normalize=True) # Com esta análise inicial, concluímos que informação de que 26% dos clientes cancelaram o serviço estava correta mesmo. # ### Análise Completa # Esta etapa envolve a criação de gráficos para podermos relacionar a coluna **Churn** com as demais colunas. # In[10]: # Importa o plotly import plotly.express as px from plotly.offline import init_notebook_mode, iplot init_notebook_mode(connected=True) # In[11]: # Percorre a lista de colunas da tabela, comparando-as com a coluna Churn for coluna in df_clientes.columns: if coluna == 'IDCliente' or coluna == 'Churn': continue # Cria o histograma grafico = px.histogram(df_clientes, x=coluna, color='Churn') # Exibe o gráfico grafico.show() # ## Constatações # Analisando os gráficos, foi possível chegar as seguintes conclusões: # # - Clientes com contrato mensal tem maior chance de cancelar os serviços da empresa # - Famílias maiores tendem a cancelar menos que as menores # - A categoria de clientes novatos concentra as maiores proporções de clientes que cancelam os contratos # - A experiência inicial do cliente pode estar sendo ruim # - A empresa está captando cliente desqualificados # - Clientes que possuem menos serviços contratados tendem a cancelar mais # - O serviço de internet com fibra óptica apresenta uma taxa de cancelamento expressiva # - Clientes que pagam suas faturas no boleto cancelam mais # # ## Sugestões de Ações # - Criar promoções para os clientes dos planos mensais migrarem para os planos anuais # - Criar promoções para o cliente contratar linhas adicionais # - Criar incentivos para o cliente a cada mês # - Oferecer serviços adicionais gratuitamente ou por um preço simbólico # - Comparar os preços dos nossos planos com os da concorrência e ajustá-los # - Criar incentivos para os clientes migrarem para as formas de pagamento que têm menor taxa de cancelamento