Uma introdução amigável à análise de dados em Python

Ao longo dos anos, o uso de python para ciência de dados cresceu incrivelmente e continua crescendo diariamente.


A ciência de dados é um vasto campo de estudo com muitos subcampos, dos quais a análise de dados é indiscutivelmente um dos mais importantes de todos esses campos e, independentemente do nível de habilidade de alguém em ciência de dados, tornou-se cada vez mais importante entender ou tem pelo menos um conhecimento básico sobre isso.

O que é análise de dados?

A análise de dados é a limpeza e transformação de uma grande quantidade de dados não estruturados ou desorganizados, com o objetivo de gerar insights e informações importantes sobre esses dados, o que ajudaria a tomar decisões informadas.

Existem várias ferramentas usadas para análise de dados, Python, Microsoft Excel, Tableau, SaS, etc. Mas neste artigo, focaríamos em como a análise de dados é feita em python. Mais especificamente, como isso é feito com uma biblioteca python chamada Pandas.

O que é pandas?

Pandas é uma biblioteca Python de código aberto usada para manipulação e disputa de dados. É rápido e altamente eficiente e possui ferramentas para carregar vários tipos de dados na memória. Pode ser usado para remodelar, rotular fatia, indexar ou até agrupar várias formas de dados.

Estruturas de dados no Pandas

Existem 3 estruturas de dados no Pandas, a saber;

  • Series
  • Quadro de dados
  • Painel

A melhor maneira de diferenciar os três é ver um contendo várias pilhas do outro. Portanto, um DataFrame é uma pilha de séries e um Painel é uma pilha de DataFrames.

Uma série é uma matriz unidimensional

Uma pilha de várias séries cria um DataFrame bidimensional

Uma pilha de vários DataFrames cria um painel tridimensional

A estrutura de dados com a qual mais trabalharíamos é o DataFrame bidimensional, que também pode ser o meio de representação padrão para alguns conjuntos de dados que podemos encontrar.

Análise de Dados no Pandas

Para este artigo, nenhuma instalação é necessária. Nós estaríamos usando uma ferramenta chamada colaborativo criado pelo Google. É um ambiente python on-line para análise de dados, aprendizado de máquina e IA. É simplesmente um Jupyter Notebook baseado em nuvem que vem pré-instalado com quase todos os pacotes python que você precisaria como cientista de dados.

Agora, siga para https://colab.research.google.com/notebooks/intro.ipynb. Você deve ver o abaixo.

Na navegação superior esquerda, clique na opção de arquivo e clique na opção “novo notebook”. Você veria uma nova página do notebook Jupyter carregada no seu navegador. A primeira coisa que precisamos fazer é importar os pandas para o nosso ambiente de trabalho. Podemos fazer isso executando o seguinte código;

importar pandas como pd

Para este artigo, estaríamos usando um conjunto de dados de preços de imóveis para nossa análise de dados. O conjunto de dados que estaríamos usando pode ser encontrado aqui. A primeira coisa que queremos fazer é carregar esse conjunto de dados em nosso ambiente.

Podemos fazer isso com o seguinte código em uma nova célula;

df = pd.read_csv (‘https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &token = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

O .read_csv é usado quando queremos ler um arquivo CSV e passamos uma propriedade sep para mostrar que o arquivo CSV é delimitado por vírgula.

Também devemos observar que nosso arquivo CSV carregado é armazenado em uma variável df .

Não precisamos usar a função print () no Jupyter Notebook. Podemos simplesmente digitar um nome de variável em nossa célula e o Jupyter Notebook imprimirá para nós.

Podemos tentar isso digitando df em uma nova célula e executando-a; ela imprimirá todos os dados em nosso conjunto de dados como um DataFrame para nós.

Mas nem sempre queremos ver todos os dados; às vezes, apenas queremos ver os primeiros dados e seus nomes de coluna. Podemos usar a função df.head () para imprimir as cinco primeiras colunas e df.tail () para imprimir as últimas cinco. A saída de qualquer um dos dois pareceria como tal;

Gostaríamos de verificar se há relacionamentos entre essas várias linhas e colunas de dados. A função .describe () faz exatamente isso para nós.

 A execução do df.describe () fornece a seguinte saída;

Podemos ver imediatamente que o .describe () fornece a média, desvio padrão, valores mínimos e máximos e percentis de cada coluna no DataFrame. Isso é muito útil, particularmente.

Também podemos verificar a forma do nosso DataFrame 2D para descobrir quantas linhas e colunas ele possui. Podemos fazer isso usando df.shape, que retorna uma tupla no formato (linhas, colunas).

Também podemos verificar os nomes de todas as colunas em nosso DataFrame usando df.columns.

E se quisermos selecionar apenas uma coluna e retornar todos os dados nela? Isso é feito de maneira semelhante a cortar através de um dicionário. Digite o código a seguir em uma nova célula e execute-a

df [‘preço’]

O código acima retorna a coluna de preço, podemos ir além, salvando-o em uma nova variável, como tal

preço = df [‘preço’]

Agora podemos executar todas as outras ações que podem ser executadas em um DataFrame em nossa variável de preço, já que é apenas um subconjunto de um DataFrame real. Podemos fazer coisas como df.head (), df.shape etc…

Também podemos selecionar várias colunas passando uma lista de nomes de colunas para df, como tal

data = df [[‘preço’, ‘quartos’]]

O exemplo acima seleciona colunas com os nomes “preço” e “quartos”, se digitarmos data.head () em uma nova célula, teremos o seguinte

A maneira acima de fatiar colunas retorna todos os elementos de linha nessa coluna. E se quisermos retornar um subconjunto de linhas e um subconjunto de colunas do nosso conjunto de dados? Isso pode ser feito usando .iloc e é indexado de maneira semelhante às listas python. Para que possamos fazer algo como

df.iloc [50: 3]

Que retorna a terceira coluna da 50ª linha até o final. É bem legal e igual às listas de fatias em python.

Agora vamos fazer algumas coisas realmente interessantes, nosso conjunto de dados de preços de moradias tem uma coluna que nos informa o preço de uma casa e outra coluna nos informa o número de quartos que uma casa em particular possui. O preço da moradia é um valor contínuo, portanto, é possível que não tenhamos duas casas com o mesmo preço. Mas o número de quartos é um tanto discreto, então podemos ter várias casas com dois, três, quatro quartos, etc..

E se quisermos obter todas as casas com o mesmo número de quartos e encontrar o preço médio de cada quarto separado? É relativamente fácil fazer isso em pandas, pode ser feito como tal;

df.groupby (‘bedrooms’) [‘price’] .mean ()

O primeiro acima agrupa o DataFrame pelos conjuntos de dados com número de quarto idêntico usando a função df.groupby (), então solicitamos que nos forneça apenas a coluna bedroom e use a função .mean () para encontrar a média de cada casa no conjunto de dados.

E se queremos visualizar o que foi dito acima? Gostaríamos de poder verificar como o preço médio de cada número de quarto distinto varia? Nós apenas precisamos encadear o código anterior para uma função .plot () como tal;

df.groupby (‘bedrooms’) [‘price’] .mean (). plot ()

Teremos uma saída que se parece com isso;

O exposto acima mostra algumas tendências nos dados. No eixo horizontal, temos um número distinto de quartos (observe que mais de uma casa pode ter um número X de quartos). No eixo vertical, temos a média dos preços em relação ao número correspondente de quartos na horizontal eixo. Agora podemos notar imediatamente que casas com 5 a 10 quartos custam muito mais do que casas com 3 quartos. Também ficará óbvio que casas com 7 ou 8 quartos custam muito mais do que aquelas com 15, 20 ou até 30 quartos.

Informações como a acima são por que a análise de dados é muito importante, podemos extrair informações úteis dos dados que não são imediatos ou impossíveis de serem notados sem análise.

Dados ausentes

Vamos supor que estou participando de uma pesquisa que consiste em uma série de perguntas. Compartilho um link para a pesquisa com milhares de pessoas para que elas possam dar seus comentários. Meu objetivo final é executar a análise de dados nesses dados para que eu possa obter algumas informações importantes a partir dos dados.

Agora, muita coisa pode dar errado, alguns pesquisadores podem se sentir desconfortáveis ​​ao responder algumas das minhas perguntas e deixá-lo em branco. Muitas pessoas poderiam fazer o mesmo em várias partes das perguntas da minha pesquisa. Isso pode não ser considerado um problema, mas imagine se eu estivesse coletando dados numéricos em minha pesquisa e uma parte da análise exigisse que eu obtivesse a soma, média ou alguma outra operação aritmética. Vários valores ausentes levariam a muitas imprecisões na minha análise. Tenho que descobrir uma maneira de encontrar e substituir esses valores ausentes por alguns que poderiam ser um substituto próximo deles..

O Pandas nos fornece uma função para encontrar valores ausentes em um DataFrame chamado isnull ().

A função isnull () pode ser usada como tal;

df.isnull ()

Isso retorna um DataFrame de booleanos que informa se os dados originalmente presentes estavam Verdadeiramente ausentes ou Falsamente ausentes. A saída ficaria como tal;


Precisamos de uma maneira de substituir todos esses valores ausentes, na maioria das vezes a escolha dos valores ausentes pode ser considerada zero. Às vezes, pode ser considerado como a média de todos os outros dados ou talvez a média dos dados ao seu redor, dependendo do cientista de dados e do caso de uso dos dados que estão sendo analisados.

Para preencher todos os valores ausentes em um DataFrame, usamos a função .fillna () usada como tal;

df.fillna (0)

Acima, estamos preenchendo todos os dados vazios com o valor zero. Poderia muito bem ser qualquer outro número que especificamos que seja.

A importância dos dados não pode ser enfatizada demais, pois nos ajuda a obter respostas diretamente dos nossos dados !. Análise de dados que eles dizem ser o novo óleo para economias digitais.

Todos os exemplos deste artigo podem ser encontrados aqui.

Para saber mais, confira Curso online de Análise de dados com Python e Pandas.

TAG:

  • Pitão

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map