Python & Pandas

Cortex Learn

Estruturas essenciais de manipulação e análise de dados de forma simples e visual.

Iniciando com Pandas

Carregando e Exibindo Dados

Como importar a biblioteca e carregar arquivos no formato CSV utilizando a estrutura principal de DataFrame.

# Importa o pandas
import pandas as pd

# A variável "df" recebe um arquivo do tipo csv
df = pd.read_csv('arquivo.csv')

# Imprime a tabela na tela
print(df)
display(df)
💡 print()

Função nativa do Python. Exibe os dados como texto puro (sem formatação), quebrando as linhas se a tabela for muito grande. Usada em qualquer terminal ou script executável .py.

display()

Função do ecossistema IPython/Jupyter. Exibe os dados em uma tabela interativa, estilizada em HTML com linhas alternadas e bordas suaves, facilitando muito a leitura dinâmica.

Exploração de Dataset

Visualização e Amostragem

Funções rápidas para entender as primeiras linhas, registros finais ou amostras aleatórias da base.

Leitura Rápida
# Imprime as 5 primeiras linhas da tabela
display(df.head())

# Imprime as 5 últimas linhas da tabela
display(df.tail())

# Imprime 7 linhas aleatórias da base
display(df.sample(7))

Metadados e Estrutura

Obtendo dimensões, nomes de colunas, tipos de dados e resumos estatísticos gerais da base.

Metadados
# Imprime o formato do DataFrame (número de linhas e colunas)
display(df.shape)

# Imprime as colunas da tabela
display(df.columns)

# Transforma e imprime as colunas em forma de lista Python nativa
display(list(df.columns))

# Informações completas sobre as colunas e tipos de dados
display(df.info())

# Descrição estatística (média, desvio padrão, min, max, etc.)
display(df.describe())

Tratamento e Seleção de Dados

Filtragem e Remoção

Selecionando colunas específicas e eliminando variáveis irrelevantes para a análise.

Modificação
# Retorna somente a coluna "Paciente" da base de dados
display(df['Paciente'])

# Retorna um sub-dataframe com as colunas Paciente e Telefone
display(df[['Paciente', 'Telefone']])

# Exclui a coluna "Compl" e armazena o resultado em um novo DataFrame
df_analise = df.drop(columns=['Compl'])

# Exclui valores nulos
df_analise = df.dropna()

# Preenche os valores nulos, da coluna “CPF”, com a palavra ‘“Vazio”
df_analise['CPF'] = df_analise['CPF'].fillna('Vazio')

Estudos de casos

Filtragem e Remoção

Utilizando dados de uma planilha, chamada pacientes.csv vamos retirar todos os valores nulos e apresentar somente o paciente e a sua respectiva última vez em que este foi visitado. O resultado será apresentado por ordem crescente de data.

Filtragem
# 1. Carrega o arquivo
df = pd.read_csv('pacientes.csv')

# 2. Filtra as colunas desejadas e remove as linhas nulas
df_filtrado = df[['Paciente', 'Última VD']].dropna().copy()

# 3. Converte a coluna para o formato de data (datetime) para garantir a ordenação cronológica correta
df_filtrado['Última VD'] = pd.to_datetime(df_filtrado['Última VD'], format='%d/%m/%Y')

# 4. Ordena por ordem crescente de data
df_ordenado = df_filtrado.sort_values(by='Última VD')

# 5. Opcional: Formata a data de volta para o padrão brasileiro (DD/MM/AAAA) antes de exibir
df_ordenado['Última VD'] = df_ordenado['Última VD'].dt.strftime('%d/%m/%Y')

# 6. Exibe o resultado estilizado no Jupyter Notebook
display(df_ordenado)

Soma de duas colunas

Aqui vamos multiplicar as colunas "Preço" e "Qtd", apresentando o resultado em uma nova coluna: "Total"

Operações
import pandas as pd

# 1. Garante que tudo é texto e remove R$ e espaços extras
df_analise['Preco_Unitário'] = (
    df_analise['Preco_Unitário']
    .astype(str)
    .str.replace('R$', '', regex=False)
    .str.strip()
)

# 2. Remove o ponto de milhar (ex: 1.500 -> 1500) e troca a vírgula pelo ponto decimal (ex: 10,00 -> 10.00)
df_analise['Preco_Unitário'] = (
    df_analise['Preco_Unitário']
    .str.replace('.', '', regex=False)
    .str.replace(',', '.', regex=False)
)

# 3. Converte para float (converte valores inválidos/vazios em NaN sem quebrar o código)
df_analise['Preco_Unitário'] = pd.to_numeric(df_analise['Preco_Unitário'], errors='coerce')

# 4. Agora pode calcular o faturamento normalmente
df_analise['Faturamento'] = df_analise['Preco_Unitário'] * df_analise['Qtd']