Pulizia e accesso ai dati

Lavorare con i dati categorici in Python

Kasey Jones

Research Data Scientist

Possibili problemi con dati categorici

1) Valori incoerenti: "Ham", "ham", " Ham"

2) Valori con errore: "Ham", "Hma"

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

dtype('O')
Lavorare con i dati categorici in Python

Identificare i problemi

Usa uno di questi:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Lavorare con i dati categorici in Python

Correzione: spazi bianchi

Rimozione spazi: .strip()

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

Controlla le frequenze:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- niente più spazi
Lavorare con i dati categorici in Python

Correzione: maiuscole/minuscole

Maiuscole/minuscole: .title(), .upper(), .lower()

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

Controlla le frequenze:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Lavorare con i dati categorici in Python

Correzione: errori di ortografia

Correggere un refuso con .replace()

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

Controlla le frequenze:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Lavorare con i dati categorici in Python

Verificare il tipo di dato

Verifica del dtype

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

Conversione a categoria

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Lavorare con i dati categorici in Python

Usare l'accessor str

Cercare una stringa

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Lavorare con i dati categorici in Python

Accesso ai dati con loc

Accedere ai valori di Series per categoria

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

Conteggi della Series:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Lavorare con i dati categorici in Python

Esercizio: pulizia e accesso

Lavorare con i dati categorici in Python

Preparing Video For Download...