Limpando e acessando dados

Trabalhando com dados categóricos em Python

Kasey Jones

Research Data Scientist

Possíveis problemas com dados categóricos

1) Valores inconsistentes: "Ham", "ham", " Ham"

2) Valores com erro: "Ham", "Hma"

3) dtype errado: df['Our Column'].dtype

dtype('O')
Trabalhando com dados categóricos em Python

Identificando problemas

Use um destes:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Trabalhando com dados categóricos em Python

Corrigindo: espaços em branco

Removendo espaços: .strip()

dogs["get_along_cats"] = dogs["get_along_cats"].str.strip()

Conferir as frequências:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- sem espaços extras
Trabalhando com dados categóricos em Python

Corrigindo: capitalização

Capitalização: .title(), .upper(), .lower()

dogs["get_along_cats"] = dogs["get_along_cats"].str.title()

Conferir as frequências:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Trabalhando com dados categóricos em Python

Corrigindo: palavras com erro

Corrigindo um erro com .replace()

replace_map = {"Noo": "No"}
dogs["get_along_cats"].replace(replace_map, inplace=True)

Conferir as frequências:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Trabalhando com dados categóricos em Python

Verificando o tipo de dado

Verificando o dtype

dogs["get_along_cats"].dtype
dtype('O')

Convertendo de volta para categoria

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Trabalhando com dados categóricos em Python

Usando o acessor str

Buscando uma string

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Trabalhando com dados categóricos em Python

Acessando dados com loc

Acessar valores da Series por categoria

dogs.loc[dogs["get_along_cats"] == "Yes", "size"]

Contagem de valores da Series:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Trabalhando com dados categóricos em Python

Prática: limpar e acessar

Trabalhando com dados categóricos em Python

Preparing Video For Download...