Vincoli sui tipi di dato

Pulizia dei dati in Python

Adel Nehme

VP of AI Curriculum, DataCamp

Struttura del corso

dati sporchi

Pulizia dei dati in Python

Struttura del corso

effetti collaterali

Pulizia dei dati in Python

Struttura del corso

dati puliti

Pulizia dei dati in Python

Struttura del corso

dati puliti

Capitolo 1 - Problemi comuni dei dati

Pulizia dei dati in Python

Perché pulire i dati?

flusso di lavoro DS

Pulizia dei dati in Python

Perché pulire i dati?

flusso di lavoro DS

Pulizia dei dati in Python

Perché pulire i dati?

                                                                                   Garbage in Garbage out

Pulizia dei dati in Python

Vincoli sui tipi di dato

Tipo di dato Esempio
Testo Nome, cognome, indirizzo ...
Interi # iscritti, # prodotti venduti ...
Decimali Temperatura, tassi di cambio $ ...
Binari Sposato, nuovo cliente, sì/no ...
Date Date ordine, date spedizione ...
Categorie Stato civile, genere ...
Tipo Python
str
int
float
bool
datetime
category
Pulizia dei dati in Python

Stringhe in interi

# Importa il CSV e mostra l'intestazione
sales = pd.read_csv('sales.csv')
sales.head(2)
   SalesOrderID    Revenue    Quantity
0         43659     23153$          12
1         43660      1457$           2
# Tipi di dato delle colonne
sales.dtypes
SalesOrderID    int64
Revenue         object
Quantity        int64
dtype: object
Pulizia dei dati in Python

Stringa in interi

# Info sul 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
Pulizia dei dati in Python

Stringa in interi

# Somma della colonna Revenue
sales['Revenue'].sum()
'23153$1457$36865$32474$472$27510$16158$5694$6876$40487$807$6893$9153$6895$4216..
# Rimuovi $ da Revenue
sales['Revenue'] = sales['Revenue'].str.strip('$')
sales['Revenue'] = sales['Revenue'].astype('int')
# Verifica che Revenue sia ora un intero
assert sales['Revenue'].dtype == 'int'
Pulizia dei dati in Python

L'istruzione assert

# Questo passa
assert 1+1 == 2
# Questo non passa
assert 1+1 == 3
AssertionError                            Traceback (most recent call last)
         assert 1+1 == 3
AssertionError:
Pulizia dei dati in Python

Numerico o categorico?

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

0 = Mai sposato       1 = Sposato       2 = Separato       3 = Divorziato

df['marriage_status'].describe()
       marriage_status
...
mean              1.4
std               0.20
min               0.00
50%               1.8 ...
Pulizia dei dati in Python

Numerico o categorico?

# Converti in categorico
df["marriage_status"] = df["marriage_status"].astype('category')

df.describe()
        marriage_status
count                 241
unique                4
top                   1
freq                  120
Pulizia dei dati in Python

Ayo berlatih!

Pulizia dei dati in Python

Preparing Video For Download...