Congratulazioni

Analisi esplorativa dei dati in Python

George Boorman

Curriculum Manager, DataCamp

Ispezione e validazione

Istogramma delle valutazioni dei libri

books["year"] = books["year"].astype(int)
books.dtypes
name       object
author     object
rating    float64
year        int64
genre      object
dtype: object
Analisi esplorativa dei dati in Python

Aggregazione

books.groupby("genre").agg(
    mean_rating=("rating", "mean"),
    std_rating=("rating", "std"),
    median_year=("year", "median")
)
|  genre      | mean_rating | std_rating | median_year |
|-------------|-------------|------------|-------------|
|   Childrens |    4.780000 |   0.122370 |      2015.0 |
|     Fiction |    4.570229 |   0.281123 |      2013.0 |
| Non Fiction |    4.598324 |   0.179411 |      2013.0 |
Analisi esplorativa dei dati in Python

Gestisci i valori mancanti

print(salaries.isna().sum())
Working_Year            12
Designation             27
Experience              33
Employment_Status       31
Employee_Location       28
Company_Size            40
Remote_Working_Ratio    24
Salary_USD              60
dtype: int64
Analisi esplorativa dei dati in Python

Gestisci i valori mancanti

  • Elimina i valori mancanti

 

  • Imputa media, mediana, moda

 

  • Imputa per sottogruppo

 

salaries_dict = salaries.groupby("Experience")["Salary_USD"].median().to_dict()
salaries["Salary_USD"] = salaries["Salary_USD"].fillna(salaries["Experience"].map(salaries_dict))
Analisi esplorativa dei dati in Python

Analizza dati categorici

salaries["Job_Category"] = np.select(conditions, 
                                     job_categories, 
                                     default="Other")

Grafico a barre con il conteggio dei lavori per categoria

Analisi esplorativa dei dati in Python

Applica funzioni lambda

Applica una funzione lambda

salaries["std_dev"] = salaries.groupby("Experience")["Salary_USD"].transform(lambda x: x.std())
Analisi esplorativa dei dati in Python

Gestisci gli outlier

sns.boxplot(data=salaries,
            y="Salary_USD")
plt.show()

Box plot degli stipendi dei data professional: 25º percentile in basso, 50º al centro, 75º in alto

Analisi esplorativa dei dati in Python

Pattern nel tempo

sns.lineplot(data=divorce, x="marriage_month", y="marriage_duration")
plt.show()

Line plot della relazione tra mese del matrimonio e durata

Analisi esplorativa dei dati in Python

Correlazione

sns.heatmap(divorce.corr(numeric_only=True), annot=True)
plt.show()

Heatmap delle correlazioni sul divorzio

Analisi esplorativa dei dati in Python

Distribuzioni

sns.kdeplot(data=divorce, x="marriage_duration", hue="education_man", cut=0)
plt.show()

KDE della durata del matrimonio con hue=education_man e cut=0

Analisi esplorativa dei dati in Python

Tabelle incrociate

pd.crosstab(planes["Source"], planes["Destination"],
            values=planes["Price"], aggfunc="median")
Destination  Banglore   Cochin   Delhi  Hyderabad  Kolkata  New Delhi
Source                                                               
Banglore          NaN      NaN  4823.0        NaN      NaN    10976.5
Chennai           NaN      NaN     NaN        NaN   3850.0        NaN
Delhi             NaN  10262.0     NaN        NaN      NaN        NaN
Kolkata        9345.0      NaN     NaN        NaN      NaN        NaN
Mumbai            NaN      NaN     NaN     3342.0      NaN        NaN
Analisi esplorativa dei dati in Python

pd.cut()

Fornisci i bin

planes["Price_Category"] = pd.cut(planes["Price"],
                                  labels=labels,
                                  bins=bins)
Analisi esplorativa dei dati in Python

Data snooping

Heatmap con coefficienti di correlazione per ogni numero di scali

Analisi esplorativa dei dati in Python

Generare ipotesi

sns.barplot(data=planes, x="Airline", y="Duration")
plt.show()

Bar plot di durata vs compagnia aerea

Analisi esplorativa dei dati in Python

Prossimi passi

Analisi esplorativa dei dati in Python

Congratulazioni!

Analisi esplorativa dei dati in Python

Preparing Video For Download...