Tutorial do Módulo Python Pandas

Módulo Python Pandas

  • O Pandas é uma biblioteca de código aberto em Python. Ele fornece estruturas de dados de alto desempenho prontas para uso e ferramentas de análise de dados.
  • O módulo Pandas é executado sobre o NumPy e é popularmente usado para ciência de dados e análise de dados.
  • O NumPy é uma estrutura de dados de baixo nível que suporta arrays multidimensionais e uma ampla gama de operações matemáticas com arrays. O Pandas tem uma interface de nível mais alto. Ele também fornece alinhamento simplificado de dados tabulares e funcionalidade poderosa de séries temporais.
  • O DataFrame é a estrutura de dados chave no Pandas. Ele nos permite armazenar e manipular dados tabulares como uma estrutura de dados 2-D.
  • O Pandas fornece um conjunto de recursos rico no DataFrame. Por exemplo, alinhamento de dados, estatísticas de dados, slice, agrupamento, mesclagem, concatenação de dados, etc.

Instalando e Começando com Pandas

Você precisa ter o Python 2.7 ou superior para instalar o módulo Pandas. Se estiver usando conda, então você pode instalá-lo usando o comando abaixo.

conda install pandas

Se estiver a utilizar o PIP, execute o seguinte comando para instalar o módulo pandas.

pip3.7 install pandas
Python Install Pandas Module

Para importar o Pandas e o NumPy no seu script Python, adicione o seguinte trecho de código:

import pandas as pd
import numpy as np

Como o Pandas depende da biblioteca NumPy, precisamos importar essa dependência.


Estruturas de Dados no módulo Pandas

Há 3 estruturas de dados fornecidas pelo módulo Pandas, que são as seguintes:

  • Série: É uma estrutura de matriz imutável de tamanho 1-D, com dados homogêneos.
  • DataFrames: É uma estrutura tabular de tamanho 2-D, mutável, com colunas de tipos heterogêneos.
  • Painel: É um array mutável de tamanho 3-D.

DataFrames do Pandas

DataFrame é a estrutura de dados mais importante e amplamente utilizada, sendo uma forma padrão de armazenar dados. O DataFrame possui dados alinhados em linhas e colunas, como uma tabela SQL ou um banco de dados de planilha. Podemos inserir dados manualmente em um DataFrame ou importar um arquivo CSV, arquivo tsv, arquivo Excel, tabela SQL, etc. Podemos utilizar o construtor abaixo para criar um objeto DataFrame.

pandas.DataFrame(data, index, columns, dtype, copy)

Abaixo está uma breve descrição dos parâmetros:

  • – criar um objeto DataFrame a partir dos dados de entrada. Pode ser uma lista, dicionário, série, ndarrays do Numpy ou até mesmo outro DataFrame.
  • – tem os rótulos das linhas
  • – usado para criar rótulos de coluna
  • – usado para especificar o tipo de dados de cada coluna, parâmetro opcional
  • – usado para copiar dados, se houver

Existem muitas maneiras de criar um DataFrame. Podemos criar um objeto DataFrame a partir de Dicionários ou lista de dicionários. Também podemos criá-lo a partir de uma lista de tuplas, CSV, arquivo do Excel, etc. Vamos executar um código simples para criar um DataFrame a partir da lista de dicionários.

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "State": ['Andhra Pradesh', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],
    "Capital": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],
    "Literacy %": [89, 77, 82, 97,85],
    "Avg High Temp(c)": [33, 30, 29, 31, 32 ]
})
print(df)

Saída: O primeiro passo é criar um dicionário. O segundo passo é passar o dicionário como argumento no método DataFrame(). O passo final é imprimir o DataFrame. Como você pode ver, o DataFrame pode ser comparado a uma tabela com valores heterogêneos. Além disso, o tamanho do DataFrame pode ser modificado. Nós fornecemos os dados na forma do mapa e as chaves do mapa são consideradas pelo Pandas como os rótulos das linhas. O índice é exibido na coluna mais à esquerda e tem os rótulos das linhas. O cabeçalho da coluna e os dados são exibidos de forma tabular. Também é possível criar DataFrames indexados. Isso pode ser feito configurando o parâmetro de índice no método DataFrame().


Importando dados de CSV para DataFrame

Também podemos criar um DataFrame importando um arquivo CSV. Um arquivo CSV é um arquivo de texto com um registro de dados por linha. Os valores dentro do registro são separados usando o caractere “vírgula”. O Pandas fornece um método útil, chamado read_csv(), para ler o conteúdo do arquivo CSV em um DataFrame. Por exemplo, podemos criar um arquivo chamado ‘cidades.csv’ contendo detalhes das cidades indianas. O arquivo CSV é armazenado no mesmo diretório que contém os scripts Python. Este arquivo pode ser importado usando:

import pandas as pd
data =  pd.read_csv('cities.csv')
print(data)

. Nosso objetivo é carregar dados e analisá-los para tirar conclusões. Portanto, podemos usar qualquer método conveniente para carregar os dados. Neste tutorial, estamos codificando os dados do DataFrame.


Inspecionando dados no DataFrame

Executar o DataFrame usando seu nome exibe a tabela inteira. Em tempo real, os conjuntos de dados para analisar terão milhares de linhas. Para analisar os dados, precisamos inspecionar dados de volumes enormes de conjuntos de dados. O Pandas fornece muitas funções úteis para inspecionar apenas os dados de que precisamos. Podemos usar df.head(n) para obter as primeiras n linhas ou df.tail(n) para imprimir as últimas n linhas. Por exemplo, o código abaixo imprime as primeiras 2 linhas e a última linha do DataFrame.

print(df.head(2))

Output:

print(df.tail(1))

Output: Da mesma forma, print(df.dtypes) imprime os tipos de dados. Output: print(df.index) imprime o índice. Output: print(df.columns) imprime as colunas do DataFrame. Output: print(df.values) exibe os valores da tabela. Output:


1. Obtendo resumo estatístico dos registros

Podemos obter um resumo estatístico (contagem, média, desvio padrão, mínimo, máximo etc.) dos dados usando a função df.describe(). Agora, vamos usar essa função para exibir o resumo estatístico da coluna “Literacy %”. Para fazer isso, podemos adicionar o seguinte trecho de código:

print(df['Literacy %'].describe())

Resultado: A função df.describe() exibe o resumo estatístico, juntamente com o tipo de dados.


2. Ordenando registros

Podemos ordenar os registros por qualquer coluna usando a função df.sort_values(). Por exemplo, vamos ordenar a coluna “Literacy %” em ordem decrescente.

print(df.sort_values('Literacy %', ascending=False))

Resultado:


3. Fatias de registros

É possível extrair dados de uma coluna específica usando o nome da coluna. Por exemplo, para extrair a coluna ‘Capital’, usamos:

df['Capital']

ou

(df.Capital)

Saída: Também é possível fatiar várias colunas. Isso é feito ao envolver vários nomes de colunas em 2 colchetes, com os nomes das colunas separados por vírgulas. O código a seguir fatia as colunas ‘Estado’ e ‘Capital’ do DataFrame.

print(df[['State', 'Capital']])

Saída: Também é possível fatiar linhas. Múltiplas linhas podem ser selecionadas usando o operador “:”. O código abaixo retorna as primeiras 3 linhas.

df[0:3]

Saída: Uma característica interessante da biblioteca Pandas é selecionar dados com base em seus rótulos de linha e coluna usando a função iloc[0]. Muitas vezes, podemos precisar apenas de algumas colunas para analisar. Também podemos selecionar por índice usando loc['índice_um']). Por exemplo, para selecionar a segunda linha, podemos usar df.iloc[1,:]. Digamos que precisamos selecionar o segundo elemento da segunda coluna. Isso pode ser feito usando a função df.iloc[1,1]. Neste exemplo, a função df.iloc[1,1] exibe “Mumbai” como saída.


4. Filtrando dados

Também é possível filtrar os valores das colunas. Por exemplo, o código abaixo filtra as colunas que têm uma porcentagem de alfabetização acima de 90%.

print(df[df['Literacy %']>90])

Qualquer operador de comparação pode ser usado para filtrar, com base em uma condição. Resultado: Outra maneira de filtrar dados é usando o isin. A seguir está o código para filtrar apenas 2 estados, ‘Karnataka’ e ‘Tamil Nadu’.

print(df[df['State'].isin(['Karnataka', 'Tamil Nadu'])])

Resultado:


5. Renomear coluna

É possível usar a função df.rename() para renomear uma coluna. A função recebe o nome antigo da coluna e o novo nome da coluna como argumentos. Por exemplo, vamos renomear a coluna ‘Literacy %’ para ‘Literacy percentage’.

df.rename(columns = {'Literacy %':'Literacy percentage'}, inplace=True)
print(df.head())

O argumento `inplace=True` faz as alterações no DataFrame. Resultado:


6. Manipulação de Dados

A Ciência de Dados envolve o processamento de dados para que os algoritmos de dados funcionem bem com os dados. A Limpeza de Dados é o processo de processamento de dados, como fusão, agrupamento e concatenação. A biblioteca Pandas fornece funções úteis como merge(), groupby() e concat() para apoiar tarefas de Limpeza de Dados. Vamos criar 2 DataFrames e mostrar as funções de Limpeza de Dados para entender melhor.

import pandas as pd

d = {  
    'Employee_id': ['1', '2', '3', '4', '5'],
    'Employee_name': ['Akshar', 'Jones', 'Kate', 'Mike', 'Tina']
}
df1 = pd.DataFrame(d, columns=['Employee_id', 'Employee_name'])  
print(df1)

Saída: Vamos criar o segundo DataFrame usando o código abaixo:

import pandas as pd

data = {  
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Tia', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data, columns=['Employee_id', 'Employee_name'])  
print(df2)

Saída:


a. Merging

Agora, vamos mesclar os 2 DataFrames que criamos, ao longo dos valores de ‘Employee_id’ usando a função merge():

print(pd.merge(df1, df2, on='Employee_id'))

Saída: Podemos ver que a função merge() retorna as linhas de ambos os DataFrames que têm o mesmo valor de coluna, que foi usado durante a mesclagem.


b. Grouping

A Agrupamento é um processo de coletar dados em diferentes categorias. Por exemplo, no exemplo abaixo, o campo “Nome do Funcionário” tem o nome “Meera” duas vezes. Então, vamos agrupá-lo pela coluna “Nome do Funcionário”.

import pandas as pd
import numpy as np

data = {
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Meera', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data)

group = df2.groupby('Employee_name')
print(group.get_group('Meera'))

O campo ‘Nome do Funcionário’ com valor ‘Meera’ é agrupado pela coluna “Nome do Funcionário”. A saída de exemplo é a seguinte: Saída:


c. Concatenating

Concatenar dados envolve adicionar um conjunto de dados a outro. O Pandas fornece uma função chamada concat() para concatenar DataFrames. Por exemplo, vamos concatenar os DataFrames df1 e df2, usando:

print(pd.concat([df1, df2]))

Output:


Criar um DataFrame passando um dicionário de Séries

Para criar uma Série, podemos usar o método pd.Series() e passar uma matriz para ele. Vamos criar uma Série simples da seguinte forma:

series_sample = pd.Series([100, 200, 300, 400])
print(series_sample)

Output: Criamos uma Série. Você pode ver que 2 colunas são exibidas. A primeira coluna contém os valores de índice a partir de 0. A segunda coluna contém os elementos passados como séries. É possível criar um DataFrame passando um dicionário de `Séries`. Vamos criar um DataFrame que é formado pela união e passagem dos índices das séries. Exemplo

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df)

Saída de exemplo Para a série um, como não especificamos o rótulo ‘d’, NaN é retornado.


Seleção, Adição, Exclusão de Colunas

É possível selecionar uma coluna específica do DataFrame. Por exemplo, para exibir apenas a primeira coluna, podemos reescrever o código acima como:

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df['Matches played'])

O código acima imprime apenas a coluna “Partidas jogadas” do DataFrame. Output Também é possível adicionar colunas a um DataFrame existente. Por exemplo, o código abaixo adiciona uma nova coluna chamada “Taxa de corrida” ao DataFrame acima.

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
df['Runrate']=pd.Series([80, 70, 60, 50], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])
print(df)

Output: Podemos excluir colunas usando as funções `delete` e `pop`. Por exemplo, para excluir a coluna ‘Partidas jogadas’ no exemplo acima, podemos fazer isso de duas maneiras:

del df['Matches played']

ou

df.pop('Matches played')

Output:


Conclusão

Neste tutorial, tivemos uma breve introdução à biblioteca Python Pandas. Também realizamos exemplos práticos para liberar o poder da biblioteca Pandas usada no campo da ciência de dados. Também exploramos as diferentes Estruturas de Dados na biblioteca Python. Referência: Site Oficial do Pandas

Source:
https://www.digitalocean.com/community/tutorials/python-pandas-module-tutorial