Scienza dei dati - Preparazione dei dati


Prima di analizzare i dati, un Data Scientist deve estrarre i dati e renderli puliti e preziosi.


Estrai e leggi i dati con Panda

Prima che i dati possano essere analizzati, devono essere importati/estratti.

Nell'esempio seguente, ti mostriamo come importare dati usando Pandas in Python.

Usiamo la read_csv()funzione per importare un file CSV con i dati sanitari:

Esempio

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)

Esempio spiegato

  • Importa la libreria Panda
  • Denominare il frame di dati come health_data.
  • header=0significa che le intestazioni per i nomi delle variabili si trovano nella prima riga (notare che 0 significa la prima riga in Python)
  • sep=","significa che "," viene utilizzato come separatore tra i valori. Questo perché stiamo usando il tipo di file .csv (valori separati da virgola)

Suggerimento: se disponi di un file CSV di grandi dimensioni, puoi utilizzare la head()funzione per mostrare solo le prime 5 righe:

Esempio

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())

Pulizia dei dati

Guarda i dati importati. Come puoi vedere, i dati sono "sporchi" con valori errati o non registrati:

Dati sporchi
  • Ci sono alcuni campi vuoti
  • L'impulso medio di 9 000 non è possibile
  • 9 000 saranno trattati come non numerici, a causa del separatore di spazio
  • Un'osservazione dell'impulso massimo è indicata come "AF", il che non ha senso

Quindi, dobbiamo pulire i dati per eseguire l'analisi.


Rimuovi le righe vuote

Vediamo che i valori non numerici (9 000 e AF) sono nelle stesse righe con valori mancanti.

Soluzione: possiamo rimuovere le righe con le osservazioni mancanti per risolvere questo problema.

Quando carichiamo un set di dati utilizzando Panda, tutte le celle vuote vengono automaticamente convertite in valori "NaN".

Quindi, la rimozione delle celle NaN ci fornisce un set di dati pulito che può essere analizzato.

Possiamo usare la dropna()funzione per rimuovere i NaN. asse=0 significa che vogliamo rimuovere tutte le righe che hanno un valore NaN:

Esempio

health_data.dropna(axis=0,inplace=True)

print(health_data)

Il risultato è un set di dati senza righe NaN:

Dati puliti

Categorie di dati

Per analizzare i dati, dobbiamo anche conoscere i tipi di dati con cui abbiamo a che fare.

I dati possono essere suddivisi in tre categorie principali:

  1. Numerico : contiene valori numerici. Si possono dividere in due categorie:
    • Discreto: i numeri vengono conteggiati come "interi". Esempio: non puoi aver allenato 2,5 sessioni, sono 2 o 3
    • Continuo: i numeri possono essere di precisione infinita. Ad esempio, puoi dormire per 7 ore, 30 minuti e 20 secondi o 7.533 ore
  2. Categoriale - Contiene valori che non possono essere misurati l'uno rispetto all'altro. Esempio: un colore o un tipo di allenamento
  3. Ordinale - Contiene dati categoriali che possono essere misurati l'uno contro l'altro. Esempio: voti scolastici in cui A è migliore di B e così via

Conoscendo il tipo dei tuoi dati, sarai in grado di sapere quale tecnica utilizzare per analizzarli.


Tipi di dati

Possiamo usare la info()funzione per elencare i tipi di dati all'interno del nostro set di dati: 

Esempio

print(health_data.info())

Risultato:

Tipo di dati float e oggetto

Vediamo che questo set di dati ha due diversi tipi di dati:

  • Galleggiante64
  • Oggetto

Non possiamo usare oggetti per calcolare ed eseguire analisi qui. Dobbiamo convertire l'oggetto di tipo in float64 (float64 è un numero con un decimale in Python).

Possiamo usare la astype()funzione per convertire i dati in float64.

L'esempio seguente converte "Average_Pulse" e "Max_Pulse" nel tipo di dati float64 (le altre variabili sono già di tipo float64):

Esempio

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())

Risultato:

Tipo di dati float

Ora, il set di dati ha solo tipi di dati float64.


Analizza i dati

Dopo aver pulito il set di dati, possiamo iniziare ad analizzare i dati.

Possiamo usare la describe()funzione in Python per riassumere i dati:

Esempio

print(health_data.describe())

Risultato:

  Durata Impulso_medio Impulso_max Calorie_Bruciate Ore_Lavoro Ore_Sonno
Contare 10.0 10.0 10.0 10.0 10.0 10.0
Significare 51.0 102.5 137.0 285.0 6.6 7.5
Std 10.49 15.4 11.35 30.28 3.63 0,53
min 30.0 80.0 120.0 240.0 0.0 7.0
25% 45.0 91.25 130.0 262.5 7.0 7.0
50% 52.5 102.5 140.0 285.0 8.0 7.5
75% 60.0 113.75 145.0 307.5 8.0 8.0
Massimo 60.0 125.0 150.0 330.0 10.0 8.0
  • Conteggio : conta il numero di osservazioni
  • Media - Il valore medio
  • Std - Deviazione standard (spiegata nel capitolo sulle statistiche)
  • Min - Il valore più basso
  • 25% , 50% e 75% sono percentili (spiegati nel capitolo statistiche)
  • Max - Il valore più alto