Restrições de pertencimento

Limpeza de dados em Python

Adel Nehme

Content Developer @DataCamp

 

 

 

 

 

 

 

Capítulo 2 - Problemas com texto e dados categóricos

Limpeza de dados em Python

Categorias e restrições de pertencimento

Conjunto finito pré-definido de categorias

Tipo de dado Valores de exemplo Representação numérica
Estado civil unmarried, married 0,1
Faixa de renda familiar 0-20K, 20-40K, ... 0,1, ..
Status do empréstimo default,payed,no_loan 0,1,2

 

O estado civil só pode ser unmarried _ou_ married

Limpeza de dados em Python

Por que esses problemas ocorrem?

problemas_categoricos

Limpeza de dados em Python

Como tratar esses problemas?

    categorias

Limpeza de dados em Python

Um exemplo

# Ler os dados do estudo e mostrá-los
study_data = pd.read_csv('study.csv')
study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
# Tipos sanguíneos válidos
categories
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Limpeza de dados em Python

Um exemplo

# Ler os dados do estudo e mostrá-los
study_data = pd.read_csv('study.csv')
study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
# Tipos sanguíneos válidos
categories
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Limpeza de dados em Python

Uma nota sobre joins

Limpeza de dados em Python

Um left anti join por tipo sanguíneo

Limpeza de dados em Python

Um inner join por tipo sanguíneo

Limpeza de dados em Python

Encontrando categorias inconsistentes

inconsistent_categories = set(study_data['blood_type']).difference(categories['blood_type'])
print(inconsistent_categories)
{'Z+'}
# Obter e mostrar linhas com categorias inconsistentes
inconsistent_rows = study_data['blood_type'].isin(inconsistent_categories)

study_data[inconsistent_rows]
      name   birthday blood_type
5 Jennifer 2019-12-17         Z+
Limpeza de dados em Python

Removendo categorias inconsistentes

inconsistent_categories = set(study_data['blood_type']).difference(categories['blood_type'])
inconsistent_rows = study_data['blood_type'].isin(inconsistent_categories)
inconsistent_data = study_data[inconsistent_rows]

# Remover categorias inconsistentes e manter só as consistentes consistent_data = study_data[~inconsistent_rows]
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
...    ...      ...          ...
Limpeza de dados em Python

Vamos praticar!

Limpeza de dados em Python

Preparing Video For Download...