Restrições de tipos de dados

Limpeza de dados em Python

Adel Nehme

VP of AI Curriculum, DataCamp

Visão geral do curso

dados sujos

Limpeza de dados em Python

Visão geral do curso

efeitos colaterais

Limpeza de dados em Python

Visão geral do curso

dados limpos

Limpeza de dados em Python

Visão geral do curso

dados limpos

Capítulo 1 - Problemas comuns de dados

Limpeza de dados em Python

Por que limpar os dados?

fluxo de ciência de dados

Limpeza de dados em Python

Por que limpar os dados?

fluxo de ciência de dados

Limpeza de dados em Python

Por que limpar os dados?

                                                                                   Lixo entra, lixo sai

Limpeza de dados em Python

Restrições de tipos de dados

Tipo de dado Exemplo
Texto Nome, sobrenome, endereço ...
Inteiros # assinantes, # produtos vendidos ...
Decimais Temperatura, taxas de câmbio $ ...
Binário É casado, novo cliente, sim/não ...
Datas Datas de pedido, envio ...
Categorias Estado civil, gênero ...
Tipo no Python
str
int
float
bool
datetime
category
Limpeza de dados em Python

Strings para inteiros

# Importar CSV e mostrar cabeçalho
sales = pd.read_csv('sales.csv')
sales.head(2)
   SalesOrderID    Revenue    Quantity
0         43659     23153$          12
1         43660      1457$           2
# Obter os tipos das colunas
sales.dtypes
SalesOrderID    int64
Revenue         object
Quantity        int64
dtype: object
Limpeza de dados em Python

String para inteiros

# Obter informações do DataFrame
sales.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 31465 entries, 0 to 31464
Data columns (total 3 columns):
SalesOrderID     31465 non-null int64
Revenue          31465 non-null object
Quantity         31465 non-null int64
dtypes: int64(2), object(1)
memory usage: 737.5+ KB
Limpeza de dados em Python

String para inteiros

# Somar a coluna Revenue
sales['Revenue'].sum()
'23153$1457$36865$32474$472$27510$16158$5694$6876$40487$807$6893$9153$6895$4216..
# Remover $ da coluna Revenue
sales['Revenue'] = sales['Revenue'].str.strip('$')
sales['Revenue'] = sales['Revenue'].astype('int')
# Verificar que Revenue agora é inteiro
assert sales['Revenue'].dtype == 'int'
Limpeza de dados em Python

A instrução assert

# Vai passar
assert 1+1 == 2
# Não vai passar
assert 1+1 == 3
AssertionError                            Traceback (most recent call last)
         assert 1+1 == 3
AssertionError:
Limpeza de dados em Python

Numérico ou categórico?

...   marriage_status    ...
...                 3    ...
...                 1    ...
...                 2    ...

0 = Nunca casou       1 = Casado       2 = Separado       3 = Divorciado

df['marriage_status'].describe()
       marriage_status
...
mean              1.4
std               0.20
min               0.00
50%               1.8 ...
Limpeza de dados em Python

Numérico ou categórico?

# Converter para categórico
df["marriage_status"] = df["marriage_status"].astype('category')

df.describe()
        marriage_status
count                 241
unique                4
top                   1
freq                  120
Limpeza de dados em Python

Vamos praticar!

Limpeza de dados em Python

Preparing Video For Download...