Guia de Bolso: Python para Análise de Dados

Alex Souza
blog do zouza
Published in
11 min readNov 7, 2022

INTRODUÇÃO

Antes de iniciarmos, vou comentar sobre uma pergunta que recebo constantemente e irei dar minha opinião sobre…

“Estou entrando na área de Análise de Dados, e iniciando meus estudos por Python, poderia me dar algumas dicas do que preciso aprender em Python?”

Costumo responder: Como está seu conhecimento em SQL? Em Modelagem Multidimensional? E conhece visualização de dados?

Costumam me responder: Não conheço, só tenho o conceito… conheço um pouco sobre Excel e alguns painéis utilizando Power BI, e estou iniciando com Python pois, vejo que está em alta e estou iniciando os estudos por Python.

Normalmente respondo: Acho extremamente importante o aprendizado de Python para Análise de dados, mas a dica é que tenha uma boa base de SQL para Análise de Dados, Modelagem de Dados e Visualização de dados, que não lhe impede que estudo em paralelo Python. Mas o mercado hoje (no meu ver), pede muito mais SQL, Modelagem e Visualização do que Python propriamente dito.

Pensando neste sentido, até para dar um ponta pé inicial em Python, abaixo algumas das principais bibliotecas Python para Análise Exploratória de Dados, além de bibliotecas, irei expor alguns dos principais recursos utilizados para explorar dados…

Vamos lá?

Pandas

O pandas é uma ferramenta de análise e manipulação de dados de código aberto rápida, poderosa, flexível e fácil de usar, construída sobre a linguagem de programação Python.

Instalação

pip install pandas

Principais links

O que é um Dataframe?

Vamos ouvir muito sobre, então vamos definir logo… São Dados tabulares bidimensionais, mutáveis ​​em tamanho e potencialmente heterogêneos.

A estrutura de dados também contém eixos rotulados (linhas e colunas). As operações aritméticas se alinham nos rótulos de linha e coluna. Pode ser pensado como um contêiner do tipo dict para objetos Series. A estrutura de dados primária do pandas.

O que é um Notebook?

Outro termo que vamos ouvir bastante é Notebook… Notebook aqui é uma aplicação web que permite a você criar e compartilhar documentos que contem ao mesmo tempo código interativo e textos explicativos.

Ele usa uma linguagem simples de markdown para formatação de texto e permite o uso de várias linguagens de programação além do Python. Ele é muito bom se você quer executar código de maneira interativa, por isso é muito usado no processamento exploratório de dados, simulações numéricas, modelagens estatísticas e até Machine Learning.

Exemplo: Jupyter | Google Colab

Fonte: https://medium.com/@pedrofullstack/introdu%C3%A7%C3%A3o-ao-jupyter-notebook-para-python-b2cf79cea31d

Principais comandos pandas para Análise de Dados

pd.read_excel
Leia um arquivo do Excel em um DataFrame do pandas. Suporta as extensões de arquivo xls , xlsx , xlsm , xlsb , odf , ods e odt lidas de um sistema de arquivos local ou URL. Suporta uma opção para ler uma única folha ou uma lista de folhas.

pandas.read_csv
Leia um arquivo de valores separados por vírgula (csv) no DataFrame. Também suporta opcionalmente a iteração ou quebra do arquivo em pedaços.

Ajuda adicional pode ser encontrada nos documentos online do IO Tools.

exemplo

df.head()
Retorna as primeiras n linhas.
Esta função retorna as primeiras n linhas do objeto com base na posição. É útil para testar rapidamente se o seu objeto contém o tipo certo de dados.

  • Para valores negativos de n , esta função retorna todas as linhas exceto a última |n| linhas, equivalente a df[:n].
  • Se n for maior que o número de linhas, esta função retornará todas as linhas.

df.info()
Imprima um resumo conciso de um DataFrame. Este método imprime informações sobre um DataFrame incluindo o tipo de índice e colunas, valores não nulos e uso de memória.

df.describe()
Gerar estatísticas descritivas. Estatísticas descritivas incluem aquelas que resumem a tendência central, dispersão e forma da distribuição de um conjunto de dados, excluindo NaN valores.

Analisa séries numéricas e de objetos, bem como conjuntos de colunas de tipos de dados mistos. A saída irá variar dependendo do que é fornecido. Consulte as notas abaixo para obter mais detalhes.

df.isnull()
DataFrame.isnull é um alias para DataFrame.isna.

Detectar valores ausentes. Retorna um objeto booleano de mesmo tamanho indicando se os valores são NA. Valores NA, como Nenhum ou numpy. NaN, são mapeados para valores True. Todo o resto é mapeado para valores False. Caracteres como strings vazias ‘ ‘ ou numpy.inf não são considerados valores NA (a menos que você defina).pandas.options.mode.use_inf_as_na = True

df.corr()
Calcular a correlação de colunas em pares, excluindo valores NA/nulos.

Pandas Profiling

Gera relatórios de perfil de um DataFrame Pandas. A função pandas df.describe() é útil, mas um pouco básica para análise exploratória de dados. Pandas-profiling estende o DataFrame do pandas com df.profile_report(), que gera automaticamente um relatório univariado e multivariado padronizado para compreensão dos dados.

Para cada coluna, as seguintes informações (sempre que relevantes para o tipo de coluna) são apresentadas em um relatório HTML interativo:

- Inferência de tipo: detectar os tipos de colunas em um DataFrame

- Essentials: tipo, valores exclusivos, indicação de valores ausentes

- Estatísticas quantílicas: valor mínimo, Q1, mediana, Q3, máximo, intervalo, intervalo interquartil

- Estatística descritiva: média, moda, desvio padrão, soma, desvio absoluto mediano, coeficiente de variação, curtose, assimetria

- Valores mais frequentes e extremos

- Histogramas: categóricos e numéricos

- Correlações: avisos de alta correlação, com base em diferentes métricas de correlação (Spearman, Pearson, Kendall, V de Cramér, Phik)

- Valores ausentes: por meio de contagens, matriz, mapa de calor e dendrogramas

- Linhas duplicadas: lista das linhas duplicadas mais comuns

- Análise de texto: categorias mais comuns (maiúsculas, minúsculas, separadores), scripts (latim, cirílico) e blocos (ASCII, cirílico)

- Análise de arquivos e imagens: tamanhos de arquivos, datas de criação, dimensões, indicação de imagens truncadas e existência de metadados EXIF

O relatório contém três seções adicionais:

- Visão geral: detalhes principalmente globais sobre o conjunto de dados (número de registros, número de variáveis, falta geral e duplicatas, espaço de memória)

- Alertas: uma lista abrangente e automática de possíveis problemas de qualidade de dados (alta correlação, assimetria, uniformidade, zeros, valores ausentes, valores constantes, entre outros)

- Reprodução: detalhes técnicos sobre a análise (tempo, versão e configuração)

Instalação

pip install -U pandas-profiling

Exemplos

Alguns exemplos:

Exemplo de um código funcional

Exemplo de um relatório gerado

Numpy

Links úteis : Instalação | Repositório de origem | Rastreador de problemas | Suporte para perguntas e respostas | Lista de correspondência | Glossário

NumPy é o pacote fundamental para computação científica em Python. É uma biblioteca Python que fornece um objeto array multidimensional, vários objetos derivados (como arrays e matrizes mascarados) e uma variedade de rotinas para operações rápidas em arrays, incluindo matemática, lógica, manipulação de formas, classificação, seleção, E/S , transformadas discretas de Fourier, álgebra linear básica, operações estatísticas básicas, simulação aleatória e muito mais.

Guia para iniciante

Guia de usuário

Numpy Tutorial — Github

Data Types

Arrays Estruturadas

Álgebra Linear

Exemplo simples

Seaborn

Seaborn é uma biblioteca de visualização de dados Python baseada em matplotlib . Ele fornece uma interface de alto nível para desenhar gráficos estatísticos atraentes e informativos.

Para uma breve introdução às ideias por trás da biblioteca, você pode ler as notas introdutórias ou o artigo. Visite a página de instalação para ver como você pode baixar o pacote e começar a usá-lo. Você pode navegar na galeria de exemplos para ver algumas das coisas que você pode fazer com o seaborn e, em seguida, confira os tutoriais ou a referência da API para descobrir como.

Para ver o código ou relatar um bug, visite o repositório do GitHub. As perguntas gerais de suporte são mais comuns no stackoverflow, que possui um canal dedicado para seaborn.

Principais gráficos

sns.displot
Interface de nível de figura para desenhar gráficos de distribuição em um FacetGrid.

Essa função fornece acesso a várias abordagens para visualizar a distribuição univariada ou bivariada de dados, incluindo subconjuntos de dados definidos por mapeamento semântico e facetação em várias subtramas.

sns.heatmap
Lote de dados retangulares como uma matriz codificada por cores. Esta é uma função de nível de eixos e desenhará o mapa de calor nos eixos atualmente ativos se nenhum for fornecido ao ax argumento. Parte deste espaço de Eixos será usado para plotar um mapa de cores, a menos que cbar seja False ou um Eixo separado seja fornecido para cbar_ax.

sns.scatterplot
Desenhe um gráfico de dispersão com possibilidade de vários agrupamentos semânticos.

sns.boxplot
Desenhe um gráfico de caixa para mostrar as distribuições em relação às categorias. Um gráfico de caixa (ou gráfico de caixa e bigode) mostra a distribuição de dados quantitativos de uma forma que facilita comparações entre variáveis ​​ou entre níveis de uma variável categórica. A caixa mostra os quartis do conjunto de dados enquanto os bigodes se estendem para mostrar o resto da distribuição, exceto os pontos que são determinados como “outliers” usando um método que é uma função do intervalo interquartil.

sns.violinplot
Desenhe uma combinação de boxplot e estimativa de densidade do kernel.

Um enredo de violino desempenha um papel semelhante ao de um enredo de caixa e bigode. Ele mostra a distribuição de dados quantitativos em vários níveis de uma (ou mais) variáveis ​​categóricas de forma que essas distribuições possam ser comparadas. Ao contrário de um gráfico de caixa, no qual todos os componentes do gráfico correspondem a pontos de dados reais, o gráfico de violino apresenta uma estimativa de densidade do kernel da distribuição subjacente.

Essa pode ser uma maneira eficaz e atraente de mostrar várias distribuições de dados de uma só vez, mas lembre-se de que o procedimento de estimativa é influenciado pelo tamanho da amostra, e violinos para amostras relativamente pequenas podem parecer enganosamente suaves.

seaborn.barplot
Mostrar estimativas de pontos e erros como barras retangulares.

Um gráfico de barras representa uma estimativa de tendência central para uma variável numérica com a altura de cada retângulo e fornece alguma indicação da incerteza em torno dessa estimativa usando barras de erro. Os gráficos de barras incluem 0 no intervalo do eixo quantitativo e são uma boa opção quando 0 é um valor significativo para a variável quantitativa e você deseja fazer comparações com ele.

Para conjuntos de dados em que 0 não é um valor significativo, um gráfico de pontos permitirá que você se concentre nas diferenças entre os níveis de uma ou mais variáveis ​​categóricas.

Também é importante ter em mente que um gráfico de barras mostra apenas o valor médio (ou outro estimador), mas em muitos casos pode ser mais informativo mostrar a distribuição dos valores em cada nível das variáveis ​​categóricas. Nesse caso, outras abordagens, como uma caixa ou plotagem de violino, podem ser mais apropriadas.

seaborn.lineplot
Desenhe um gráfico de linhas com possibilidade de vários agrupamentos semânticos.

seaborn.histplot
Plote histogramas univariados ou bivariados para mostrar distribuições de conjuntos de dados.

Um histograma é uma ferramenta de visualização clássica que representa a distribuição de uma ou mais variáveis ​​contando o número de observações que se enquadram em compartimentos discretos.

Esta função pode normalizar a estatística calculada dentro de cada bin para estimar frequência, densidade ou massa de probabilidade, e pode adicionar uma curva suave obtida usando uma estimativa de densidade do kernel, semelhante a kdeplot().

Análise Exploratória de Dados

Ou, em resumo, EDA (do inglês: Exploratory Data Analysis) é uma abordagem para analisar dados para resumir as principais características dos dados, obter uma melhor compreensão do conjunto de dados, descobrir relacionamentos entre diferentes variáveis ​​e extrair variáveis ​​importantes. EDA, é um passo importante em qualquer projeto de Análise de Dados ou Ciência de Dados.

Objetivo
O principal objetivo da EDA é detectar quaisquer erros ou discrepâncias, bem como entender diferentes padrões nos dados. Ele permite que os analistas entendam melhor os dados antes de fazer qualquer suposição e descubram relacionamentos entre variáveis. Os resultados da EDA ajudam as empresas a conhecer seus clientes, expandir seus negócios e tomar melhores decisões.

Mais Informações:

Apesar de bem básico, espero que tenham gostado do conteúdo e que possa ajudar em sua jornada! Abraço!

Sobre o autor

Meu nome é Alex Souza, sou um profissional da Área de Dados com mais de 15 anos de experiência. Mestre em Inteligência Artificial, Professor de Pós-Graduação e Mentor. Atuo como Analista de Dados, atendendo grandes organizações nacionais e dando apoio a outros analistas.

Como mentor, busco auxiliar pessoas a alavancarem suas carreiras e atingirem seus objetivos.

Criei a Comunidade de Análise de Dados com o objetivo de levar conhecimento a um número maior de pessoas e o principal, que seja um ambiente VIVO e de constante interação e troca de conhecimento, como estes, entre os membros.

Mais informações e redes sociais

--

--