Restrições de exclusividade

Limpeza de dados em Python

Adel Nehme

VP of AI Curriculum, DataCamp

O que são valores duplicados?

Todas as colunas têm os mesmos valores

first_name last_name address height weight
Justin Saddlemyer Boulevard du Jardin Botanique 3, Bruxelles 193 cm 87 kg
Justin Saddlemyer Boulevard du Jardin Botanique 3, Bruxelles 193 cm 87 kg
Limpeza de dados em Python

O que são valores duplicados?

A maioria das colunas tem os mesmos valores

first_name last_name address height weight
Justin Saddlemyer Boulevard du Jardin Botanique 3, Bruxelles 193 cm 87 kg
Justin Saddlemyer Boulevard du Jardin Botanique 3, Bruxelles 194 cm 87 kg
Limpeza de dados em Python

Por que acontecem?

duplicate_1

Limpeza de dados em Python

Por que acontecem?

duplicate_2

Limpeza de dados em Python

Por que acontecem?

duplicate_3

Limpeza de dados em Python

Como encontrar valores duplicados?

# Print the header
height_weight.head()
  first_name last_name                       address  height  weight
0       Lane     Reese              534-1559 Nam St.     181      64
1       Ivor    Pierce             102-3364 Non Road     168      66
2      Roary    Gibson   P.O. Box 344, 7785 Nisi Ave     191      99
3    Shannon    Little  691-2550 Consectetuer Street     185      65
4      Abdul       Fry                4565 Risus St.     169      65
Limpeza de dados em Python

Como encontrar valores duplicados?

# Pegar duplicatas em todas as colunas
duplicates = height_weight.duplicated()
print(duplicates)
1       False
...     ....
22      True
23      False
...     ...
Limpeza de dados em Python

Como encontrar valores duplicados?

# Obter linhas duplicadas
duplicates = height_weight.duplicated()
height_weight[duplicates]
    first_name last_name                               address  height  weight
100       Mary     Colon                           4674 Ut Rd.     179      75
101       Ivor    Pierce                     102-3364 Non Road     168      88
102       Cole    Palmer                       8366 At, Street     178      91
103    Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     196      83
Limpeza de dados em Python

Como encontrar linhas duplicadas?

O método .duplicated()

subset: Lista de colunas para verificar duplicação.

keep: Manter a duplicata primeira ('first'), última ('last') ou todas (False).

# Colunas para checar duplicação
column_names = ['first_name','last_name','address']
duplicates = height_weight.duplicated(subset = column_names, keep = False)
Limpeza de dados em Python

Como encontrar linhas duplicadas?

# Exibir valores duplicados
height_weight[duplicates]
    first_name last_name                               address  height  weight
1         Ivor    Pierce                     102-3364 Non Road     168      66
22        Cole    Palmer                       8366 At, Street     178      91
28     Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     195      83
37        Mary     Colon                           4674 Ut Rd.     179      75
100       Mary     Colon                           4674 Ut Rd.     179      75
101       Ivor    Pierce                     102-3364 Non Road     168      88
102       Cole    Palmer                       8366 At, Street     178      91
103    Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     196      83
Limpeza de dados em Python

Como encontrar linhas duplicadas?

# Exibir valores duplicados
height_weight[duplicates].sort_values(by = 'first_name')
    first_name last_name                               address  height  weight
22        Cole    Palmer                       8366 At, Street     178      91
102       Cole    Palmer                       8366 At, Street     178      91
28     Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     195      83
103    Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     196      83
1         Ivor    Pierce                     102-3364 Non Road     168      66
101       Ivor    Pierce                     102-3364 Non Road     168      88
37        Mary     Colon                           4674 Ut Rd.     179      75
100       Mary     Colon                           4674 Ut Rd.     179      75
Limpeza de dados em Python

Como encontrar linhas duplicadas?

# Exibir valores duplicados
height_weight[duplicates].sort_values(by = 'first_name')

Duplicatas completas

Limpeza de dados em Python

Como encontrar linhas duplicadas?

# Exibir valores duplicados
height_weight[duplicates].sort_values(by = 'first_name')

Duplicatas parciais

Limpeza de dados em Python

Como tratar valores duplicados?

# Exibir valores duplicados
height_weight[duplicates].sort_values(by = 'first_name')

Duplicatas completas

Limpeza de dados em Python

Como tratar valores duplicados?

O método .drop_duplicates()

subset: Lista de colunas para verificar duplicação.

keep: Manter a duplicata primeira ('first'), última ('last') ou todas (False).

inplace: Remove as linhas duplicadas direto no DataFrame sem criar novo objeto (True).

# Remover duplicatas
height_weight.drop_duplicates(inplace = True)
Limpeza de dados em Python

Como tratar valores duplicados?

# Exibir valores duplicados
column_names = ['first_name','last_name','address']
duplicates = height_weight.duplicated(subset = column_names, keep = False)
height_weight[duplicates].sort_values(by = 'first_name')
    first_name last_name                               address  height  weight
28     Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     195      83
103    Desirae   Shannon  P.O. Box 643, 5251 Consectetuer, Rd.     196      83
1         Ivor    Pierce                     102-3364 Non Road     168      66
101       Ivor    Pierce                     102-3364 Non Road     168      88
Limpeza de dados em Python

Como tratar valores duplicados?

# Exibir valores duplicados
column_names = ['first_name','last_name','address']
duplicates = height_weight.duplicated(subset = column_names, keep = False)
height_weight[duplicates].sort_values(by = 'first_name')

Agregação de duplicatas

Limpeza de dados em Python

Como tratar valores duplicados?

Os métodos .groupby() e .agg()

# Agrupe pelas colunas e gere resumos estatísticos
column_names = ['first_name','last_name','address']
summaries = {'height': 'max', 'weight': 'mean'}
height_weight = height_weight.groupby(by = column_names).agg(summaries).reset_index()

# Confira se a agregação foi feita duplicates = height_weight.duplicated(subset = column_names, keep = False) height_weight[duplicates].sort_values(by = 'first_name')
first_name    last_name    address    height    weight

Limpeza de dados em Python

Vamos praticar!

Limpeza de dados em Python

Preparing Video For Download...