Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sumário INTRODUÇÃO ................................................................................................................................ 3 Pandas ........................................................................................................................................... 3 Instalação .................................................................................................................................. 3 Principais links ........................................................................................................................... 3 O que é um Dataframe? ............................................................................................................ 4 O que é um Notebook? ................................................................................................................. 4 Principais comandos pandas para Análise de Dados ................................................................ 4 Pandas Profiling ............................................................................................................................. 6 Instalação .................................................................................................................................. 7 Exemplos ................................................................................................................................... 7 Numpy ........................................................................................................................................... 7 Guia para iniciante .................................................................................................................... 7 Guia de usuário ......................................................................................................................... 7 Numpy Tutorial - Github ........................................................................................................... 8 Data Types ................................................................................................................................. 8 Arrays Estruturadas ................................................................................................................... 8 Álgebra Linear ........................................................................................................................... 8 Exemplo simples ........................................................................................................................ 8 Matplotlib ...................................................................................................................................... 8 Documentação .......................................................................................................................... 9 Primeiros passos........................................................................................................................ 9 Seaborn ......................................................................................................................................... 9 Principais gráficos ...................................................................................................................... 9 Análise Exploratória de Dados .................................................................................................... 13 Objetivo ................................................................................................................................... 13 Exemplo completo de uma Análise Exploratória de Dados com Python ................................ 13 Sobre o autor ............................................................................................................................... 13 Comunidade de Análise de Dados............................................................................................... 14 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 - Primeiros passos - User Guide - Livro: Python para Análise de Dados https://medium.com/@aasouzaconsult/sql-para-an%C3%A1lise-de-dados-2183f746f2e1 https://medium.com/@aasouzaconsult/aprofundando-em-data-warehouse-65ed2bca9a33 https://medium.com/blog-do-zouza/storytelling-em-an%C3%A1lise-de-dados-f708cca115bb https://pandas.pydata.org/getting_started.html https://pandas.pydata.org/docs/user_guide/index.html https://www.amazon.com/Python-Data-Analysis-Wrangling-Jupyter-dp-109810403X/dp/109810403X O que é um Dataframe? 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? Notebook é 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. 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 o 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 o 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. o Ajuda adicional pode ser encontrada nos documentos online do IO Tools. o - df.head() o Retorna as primeiras n linhas. o 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. o https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.htmlhttps://medium.com/blog-do-zouza/o-que-%C3%A9-machine-learning-5e7e98453985 https://medium.com/@pedrofullstack/introdu%C3%A7%C3%A3o-ao-jupyter-notebook-para-python-b2cf79cea31d https://medium.com/@pedrofullstack/introdu%C3%A7%C3%A3o-ao-jupyter-notebook-para-python-b2cf79cea31d https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.head.html - df.info() o 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. o - df.describe() o 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. o 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. o - df.isnull() o DataFrame.isnull é um alias para DataFrame.isna. o Detectar valores ausentes. o 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 o - df.corr() o Calcular a correlação de colunas em pares, excluindo valores NA/nulos. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.info.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isnull.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html o 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) https://pypi.org/project/pandas-profiling/ 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 https://colab.research.google.com/github/ydataai/pandas-profiling/blob/master/examples/meteorites/meteorites.ipynb https://pandas-profiling.ydata.ai/examples/master/meteorites/meteorites_report.html https://numpy.org/install/ https://github.com/numpy/numpy https://github.com/numpy/numpy/issues https://numpy.org/gethelp/ https://numpy.org/gethelp/ https://mail.python.org/mailman/listinfo/numpy-discussion https://numpy.org/doc/stable/glossary.html https://numpy.org/doc/stable/user/absolute_beginners.html https://numpy.org/doc/stable/user/index.html#user Numpy Tutorial - Github Data Types Arrays Estruturadas Álgebra Linear Exemplo simples Matplotlib Matplotlib é uma biblioteca abrangente para criar visualizações estáticas, animadas e interativas em Python. https://github.com/numpy/numpy-tutorials/ https://numpy.org/doc/stable/user/basics.types.html https://numpy.org/doc/stable/user/basics.rec.html https://numpy.org/numpy-tutorials/content/tutorial-svd.html Documentação Primeiros passos 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 o 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. https://matplotlib.org/stable/index.html https://matplotlib.org/stable/tutorials/introductory/quick_start.html https://matplotlib.org/ https://seaborn.pydata.org/tutorial/introduction.html https://seaborn.pydata.org/tutorial/introduction.html https://joss.theoj.org/papers/10.21105/joss.03021 https://seaborn.pydata.org/installing.html https://seaborn.pydata.org/examples/index.html https://seaborn.pydata.org/tutorial.html https://seaborn.pydata.org/api.html https://seaborn.pydata.org/api.html https://github.com/mwaskom/seaborn https://stackoverflow.com/questions/tagged/seaborn/ https://seaborn.pydata.org/generated/seaborn.displot.html#seaborn.displot https://seaborn.pydata.org/installing.html o - sns.heatmap o lote dados retangulares como uma matriz codificada por cores. o 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 plotarum mapa de cores, a menos que cbar seja False ou um Eixo separado seja fornecido para cbar_ax. o - sns.scatterplot o Desenhe um gráfico de dispersão com possibilidade de vários agrupamentos semânticos. o https://seaborn.pydata.org/generated/seaborn.heatmap.html https://seaborn.pydata.org/generated/seaborn.scatterplot.html - sns.boxplot o 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. o - sns.violinplot o Desenhe uma combinação de boxplot e estimativa de densidade do kernel. o 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. o 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. o https://seaborn.pydata.org/generated/seaborn.boxplot.html https://seaborn.pydata.org/generated/seaborn.violinplot.html - seaborn.barplot o 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. o - seaborn.lineplot o Desenhe um gráfico de linhas com possibilidade de vários agrupamentos semânticos. o - seaborn.histplot o Plote histogramas univariados ou bivariados para mostrar distribuições de conjuntos de dados. o Um histograma é uma ferramenta de visualização clássica que representa a https://seaborn.pydata.org/generated/seaborn.barplot.html https://seaborn.pydata.org/generated/seaborn.lineplot.html https://seaborn.pydata.org/generated/seaborn.histplot.html distribuição de uma ou mais variáveis contando o número de observações que se enquadram em compartimentos discretos. o 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(). o 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: https://medium.com/@aasouzaconsult/python-para-an%C3%A1lise-de- dados-24028d7013b3 Exemplo completo de uma Análise Exploratória de Dados com Python 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. https://seaborn.pydata.org/generated/seaborn.kdeplot.html https://medium.com/@aasouzaconsult/python-para-an%C3%A1lise-de-dados-24028d7013b3 https://medium.com/@aasouzaconsult/python-para-an%C3%A1lise-de-dados-24028d7013b3 https://colab.research.google.com/drive/1bHiDj9-cEznz8szKS8mRH2T20opn1G4a#scrollTo=aM37Skn312HT&forceEdit=true&sandboxMode=true 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: https://linktr.ee/data.z Comunidade de Análise de Dados https://linktr.ee/data.z https://aasouzaconsult.kpages.online/comunidade-de-analise-de-dados
Compartilhar