0Pricing
Python Academy · Aula

Mesclagem, junção e limpeza de dados

Combine DataFrames e trate valores ausentes profissionalmente.

Mesclagem, junção e limpeza de dados é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

pd.merge

pd.merge(left, right, on="key") faz a junção de dois DataFrames por uma coluna comum — de forma semelhante ao JOIN do SQL.

import pandas as pd

users = pd.DataFrame({"id":[1,2,3],"name":["A","B","C"]})
orders = pd.DataFrame({"user_id":[1,1,2],"amount":[100,50,200]})
result = pd.merge(users, orders, left_on="id", right_on="user_id")
print(result)

Tipos de junção

Especifique how="inner" (padrão), "left", "right" ou "outer" para controlar quais linhas são mantidas.

import pandas as pd

A = pd.DataFrame({"key":["a","b","c"],"val":[1,2,3]})
B = pd.DataFrame({"key":["b","c","d"],"x":[10,20,30]})

print(pd.merge(A, B, on="key", how="left"))   # all of A
print(pd.merge(A, B, on="key", how="outer"))  # all rows

df.join

df.join(other) faz a junção pelo índice. É mais rápido e simples quando a junção é feita pelo índice, e não por uma coluna.

import pandas as pd

df1 = pd.DataFrame({"a":[1,2]}, index=["x","y"])
df2 = pd.DataFrame({"b":[3,4]}, index=["x","y"])
print(df1.join(df2))
# x: a=1 b=3
# y: a=2 b=4

concat

pd.concat([df1, df2]) empilha DataFrames verticalmente (axis=0) ou horizontalmente (axis=1).

import pandas as pd

df1 = pd.DataFrame({"a":[1,2]})
df2 = pd.DataFrame({"a":[3,4]})
print(pd.concat([df1,df2], ignore_index=True))
# a: 1 2 3 4

# Horizontal:
df3 = pd.DataFrame({"b":[5,6]})
print(pd.concat([df1,df3], axis=1))

Como lidar com valores ausentes

Detecte NaN com isna()/notna(). Preencha com fillna(). Remova com dropna().

import pandas as pd, numpy as np

df = pd.DataFrame({"a":[1,np.nan,3],"b":[np.nan,2,3]})
print(df.isna().sum())      # count nulls per column
df["a"] = df["a"].fillna(0)
df = df.dropna()            # drop rows with any null

Estratégias de fillna

Preencha valores ausentes com uma constante, com preenchimento para frente (ffill), com preenchimento para trás (bfill) ou com a média da coluna.

import pandas as pd, numpy as np

df = pd.DataFrame({"val":[1, np.nan, np.nan, 4]})
print(df["val"].ffill())   # forward fill: 1 1 1 4
print(df["val"].bfill())   # back fill:    1 4 4 4
print(df["val"].fillna(df["val"].mean()))   # fill with mean

Alteração de tipos de dados

Use astype() para converter os tipos das colunas. Use pd.to_datetime() para analisar datas e pd.to_numeric com errors="coerce" para uma conversão numérica segura.

import pandas as pd

df = pd.DataFrame({"age":["25","30","35"],"date":["2024-01-01","2024-06-15","2024-12-31"]})
df["age"] = df["age"].astype(int)
df["date"] = pd.to_datetime(df["date"])
print(df.dtypes)

Limpeza de cadeias de caracteres

O acessador .str do Pandas fornece operações vetorizadas para cadeias de caracteres: strip(), lower(), replace(), extract().

import pandas as pd

df = pd.DataFrame({"name":["  Alice  "," bob","CAROL"]})
df["clean"] = df["name"].str.strip().str.title()
print(df["clean"])   # Alice / Bob / Carol

Renomeação e reordenação de colunas

Renomeie com df.rename(columns={"old":"new"}). Reordene indexando com uma lista.

import pandas as pd

df = pd.DataFrame({"a":[1],"b":[2],"c":[3]})
df = df.rename(columns={"a":"alpha","b":"beta"})
df = df[["c","beta","alpha"]]   # reorder
print(df.columns.tolist())      # ['c', 'beta', 'alpha']

Detecção de duplicatas

Encontre duplicatas com duplicated() e remova-as com drop_duplicates().

import pandas as pd

df = pd.DataFrame({"id":[1,2,1,3],"val":["a","b","a","c"]})
print(df.duplicated())           # [F F T F]
print(df[df.duplicated()])       # show duplicates
clean = df.drop_duplicates(subset=["id"])

apply para transformações de linhas/colunas

df.apply(func, axis=1) aplica uma função a cada linha. axis=0 aplica a função a cada coluna.

import pandas as pd

df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
# New column = row sum:
df["total"] = df.apply(lambda row: row["a"] + row["b"], axis=1)
print(df)

Verificação rápida

O que df.fillna(method="ffill") faz?

Recapitulação

Use pd.merge para junções no estilo SQL e pd.concat para empilhar dados. Lide com NaN usando isna(), fillna() e dropna(). Limpe cadeias de caracteres com o acessador .str. Converta tipos com astype() e pd.to_datetime().

Perguntas Frequentes

A aula “Mesclagem, junção e limpeza de dados” é grátis?

Sim — o texto completo de “Mesclagem, junção e limpeza de dados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Mesclagem, junção e limpeza de dados”?

Combine DataFrames e trate valores ausentes profissionalmente. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Mesclagem, junção e limpeza de dados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de Series e DataFrame
  2. Indexação, filtragem e máscaras booleanas
  3. GroupBy, agregação e tabelas dinâmicas
  4. Mesclagem, junção e limpeza de dados
← Voltar para Python Academy