Use Python

Downloads

Biblioteca de Análise de Dados (pandas)

Pandas é uma das bibliotecas mais populares em Python para manipulação e análise de dados. Ela fornece estruturas de dados flexíveis e eficientes para trabalhar com dados tabulares, como planilhas, tabelas de banco de dados e coleção de dados em geral

Instalação do pacote

Instalar o pacote pandas no pelo pip

pip install pandas

Importação de biblioteca

Importação de uma biblioteca com um apelido

import pandas as pd

Criação dos DataFrames

Pandas introduz duas principais estruturas de dados: o DataFrame e a Series. O DataFrame é uma tabela bidimensional com rótulos nas colunas e linhas, semelhante a uma planilha, enquanto a Series é uma estrutura unidimensional semelhante a uma coluna ou linha de um DataFrame

Criação de um DataFrame com a classificação de frutas

import pandas as pd

frutas = pd.DataFrame([
    {"Nome": "Banana", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9 },
    {"Nome": "Maçã", "Cor": "Vermelha", "CascaComestivel": True, "Nota": 4 },
    {"Nome": "Goiaba", "Cor": "Verde", "CascaComestivel": True, "Nota": 6 }
], index=['3', '1', '2'])

print(frutas)

Adicionar coluna para todos os valores

import pandas as pd

frutas = pd.DataFrame([
    {"Nome": "Banana", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9 },
    {"Nome": "Maçã", "Cor": "Vermelha", "CascaComestivel": True, "Nota": 4 },
    {"Nome": "Goiaba", "Cor": "Verde", "CascaComestivel": True, "Nota": 6 }
], index=['3', '1', '2'])

frutas["Comestível"] = True

print(frutas)

Criação de um novo DataFrames com o campo comestível incluso

import pandas as pd

frutas = pd.DataFrame([
    {"Nome": "Maracujá", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9, "Comestível": True },
    {"Nome": "Pera", "Cor": "Verde", "CascaComestivel": True, "Nota": 4, "Comestível": True }
])

print(frutas)

União dos DataFrames

import pandas as pd

frutas_1 = pd.DataFrame([
    {"Nome": "Banana", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9 },
    {"Nome": "Maçã", "Cor": "Vermelha", "CascaComestivel": True, "Nota": 4 },
    {"Nome": "Goiaba", "Cor": "Verde", "CascaComestivel": True, "Nota": 6 }
], index=['3', '1', '2'])

frutas_1["Comestível"] = True

frutas_2 = pd.DataFrame([
    {"Nome": "Maracujá", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9, "Comestível": True },
    {"Nome": "Pera", "Cor": "Verde", "CascaComestivel": True, "Nota": 4, "Comestível": True }
])

frutas = pd.merge(frutas_1, frutas_2, how="outer")

print(frutas)

Os tipos de mesclagem (merge) semelhantes as junções SQL:

Criação de array com Fruta e Origem

import pandas as pd

frutas_origem = pd.DataFrame([
    {"Nome": "Banana", "Origem": "Indonésia" },
    {"Nome": "Maçã", "Origem": "Ásia Central" },
    {"Nome": "Goiaba", "Origem": "Brasil" },
    {"Nome": "Maracujá", "Origem": "Brasil" },
    {"Nome": "Pera", "Origem": "Norte da África" }
])

print(frutas_origem)

União lateral de DataFrame

import pandas as pd

frutas_1 = pd.DataFrame([
    {"Nome": "Banana", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9 },
    {"Nome": "Maçã", "Cor": "Vermelha", "CascaComestivel": True, "Nota": 4 },
    {"Nome": "Goiaba", "Cor": "Verde", "CascaComestivel": True, "Nota": 6 }
], index=['3', '1', '2'])

frutas_1["Comestível"] = True

frutas_2 = pd.DataFrame([
    {"Nome": "Maracujá", "Cor": "Amarela", "CascaComestivel": False, "Nota": 9, "Comestível": True },
    {"Nome": "Pera", "Cor": "Verde", "CascaComestivel": True, "Nota": 4, "Comestível": True }
])

frutas = pd.merge(frutas_1, frutas_2, how="outer")

frutas_origem = pd.DataFrame([
    {"Nome": "Banana", "Origem": "Indonésia" },
    {"Nome": "Maçã", "Origem": "Ásia Central" },
    {"Nome": "Goiaba", "Origem": "Brasil" },
    {"Nome": "Maracujá", "Origem": "Brasil" },
    {"Nome": "Pera", "Origem": "Norte da África" }
])

frutas_completo = pd.merge(frutas, frutas_origem, how="left", left_on="Nome", right_on="Nome")

print(frutas_completo)

Manipulação de DataFrames

Vamos criar a listagem para realizar a manipulação

import pandas as pd

frutas = pd.DataFrame([
    {
        "Nome": "Banana",
        "Cor": "Amarela",
        "CascaComestivel": False,
        "Nota": 9,
        "Origem": "Indonésia"
    },
    {
        "Nome": "Maçã",
        "Cor": "Vermelha",
        "CascaComestivel": True,
        "Nota": 7,
        "Origem": "Ásia Central"
    },
    {
        "Nome": "Goiaba",
        "Cor": "Verde",
        "CascaComestivel": True,
        "Nota": 6,
        "Origem": "Brasil"
    },
    {
        "Nome": "Maracujá",
        "Cor": "Amarela",
        "CascaComestivel": True,
        "Nota": 9,
        "Origem": "Brasil"
    },
    {
        "Nome": "Pera",
        "Cor": "Verde",
        "CascaComestivel": True,
        "Nota": 4,
        "Origem": "Norte da África"
    }
])

print(frutas)

Compreendendo base de dados

Vamos usar a fonte de dados Video Game Sales with Ratings com (/assets/content/video_games_sales.zip) encontrada na área de Downloads

import pandas as pd

dados = pd.read_csv('video_games_sales.zip', compression = 'zip')

print('Informações:\n', dados.info(), '\n\n')
print('Nome das colunas:\n', dados.columns, '\n\n')
print('5 primeiros registros:\n', dados.head(), '\n\n')
print('5 últimos registros:\n', dados.tail(), '\n\n')
print('descrição da fonte:\n', dados.describe(), '\n\n')
print('formato da fonte:\n', dados.shape)

Compreender um campo especifico

import pandas as pd

dados = pd.read_csv('video_games_sales.zip', compression = 'zip')
plataforma = dados['Platform']

print('Campo:\n', plataforma, '\n\n')
print('Únicos:\n', plataforma.unique(), '\n\n')
print('Contagem:\n', plataforma.value_counts(), '\n\n')
print('Proporção:\n', plataforma.value_counts(normalize = True), '\n\n')

Manipulação de dados

Renomear campos, detalhe para o inplace=True para converter o DataFrame original

import pandas as pd

colunas = {
    'Name': 'nome',
    'Platform': 'plataforma',
    'Year_of_Release': 'ano',
    'Critic_Count': 'críticos',
    'User_Count': 'usuários'
}

dados = pd.read_csv('video_games_sales.zip', compression = 'zip')
dados.rename(columns=colunas, inplace=True)
print(dados)

Realizar pesquisa dentro de valores

import pandas as pd

dados = pd.read_csv('video_games_sales.zip', compression = 'zip')

plataforma = 'GBA'
print(dados.query('Platform == @plataforma'))

plataformas = ['GB', 'GBA']
print(dados.query('Platform in @plataformas'))