Aller au contenu principal

Didacticiel : Techniques d'EDA utilisant les notebooks Databricks

Utilisez Python dans un notebook Databricks pour effectuer une analyse exploratoire des données (EDA) : chargez et nettoyez un dataset, explorez ses caractéristiques et visualisez les tendances pour générer des insights.

Le notebook utilisé dans ce tutoriel examine les données mondiales sur l’énergie et les émissions et démontre comment charger, nettoyer et explorer les données.

Vous pouvez suivre en utilisant le notebook d'exemple ou créer votre propre notebook de A à Z.

Qu'est-ce que l'EDA ?

L'analyse exploratoire des données (EDA) est une étape initiale cruciale dans le processus de Data Science qui implique l'analyse et la visualisation des données pour :

  • Découvrez ses caractéristiques principales.
  • Identifiez les modèles et les tendances.
  • Détectez les anomalies.
  • Comprenez les relations entre les variables.

L'EDA fournit des insights sur le dataset, facilitant les décisions éclairées concernant d'autres analyses statistiques ou la modélisation.

Avec les Notebooks Databricks, les data scientists peuvent effectuer une EDA à l'aide d'outils familiers. Par exemple, ce tutoriel utilise des bibliothèques Python courantes pour traiter et tracer des données, notamment :

  • Numpy : une bibliothèque fondamentale pour le calcul numérique, offrant la prise en charge des tableaux, des matrices et une large gamme de fonctions mathématiques pour opérer sur ces structures de données.
  • pandas : une bibliothèque puissante de manipulation et d'analyse de données, basée sur NumPy, qui offre des structures de données telles que les DataFrames pour gérer efficacement les données structurées.
  • Plotly : une bibliothèque graphique interactive qui permet la création de visualisations interactives de haute qualité pour l’analyse des données et la présentation.
  • Matplotlib : une bibliothèque complète pour la création de visualisations statiques, animées et interactives en Python.

Databricks offre également des fonctionnalités intégrées pour vous aider à explorer vos données dans la sortie du notebook, telles que le filtrage et la recherche de données dans les tables, et le zoom sur les visualisations. Vous pouvez également utiliser Genie Code pour vous aider à rédiger du code pour l'analyse exploratoire des données (EDA).

Avant de commencer

Pour terminer ce tutoriel, vous avez besoin des éléments suivants :

  • Vous devez avoir la permission d'utiliser une ressource de compute existante ou de créer une nouvelle ressource de compute. See compute.
  • [Facultatif] Ce tutoriel décrit comment utiliser Genie Code pour vous aider à générer du code. Voir Utiliser Genie Code pour plus d'informations.

download the dataset et importer le fichier CSV

Ce tutoriel présente les techniques d'EDA en examinant les données mondiales sur l'énergie et les émissions. Pour suivre, download le Dataset sur la consommation d'énergie de Our World in Data depuis Kaggle. Ce tutoriel utilise le fichier owid-energy-data.csv.

Pour importer le dataset dans votre workspace Databricks :

  1. Dans la barre latérale du Workspace, cliquez sur Workspace pour accéder au navigateur de Workspace.

  2. Faites glisser et déposez le fichier CSV, owid-energy-data.csv, dans votre workspace.

    Cela ouvre la fenêtre modale d' Importation . Notez le Dossier cible indiqué ici. Ceci est défini sur votre dossier actuel dans le navigateur Workspace et devient la destination du fichier importé.

  3. Cliquez sur Importer . Le fichier doit apparaître dans le dossier cible de votre workspace.

  4. Vous aurez besoin du chemin du fichier pour le charger ultérieurement dans votre Notebook. Recherchez le fichier dans votre navigateur Workspace. Pour copier le chemin du fichier dans votre presse-papiers, faites un clic droit sur le nom du fichier, puis sélectionnez Copier l'URL/le chemin > Chemin complet .

Créer un nouveau notebook

Pour créer un nouveau Notebook dans votre dossier personnel d'utilisateur, cliquez sur Nouvelle icône Nouveau dans la barre latérale et sélectionnez Notebook dans le menu.

En haut, à côté du nom du Notebook, sélectionnez Python comme langage default pour le Notebook.

Pour en savoir plus sur la création et la gestion des notebooks, voir Gérer les notebooks.

Ajoutez chacun des exemples de code de cet article à une nouvelle cellule dans votre notebook. Ou bien, utilisez le notebook d'exemple fourni pour suivre le tutoriel.

Charger un fichier CSV

Dans une nouvelle cellule de notebook, chargez le fichier CSV. Pour ce faire, importez numpy et pandas. Ce sont des bibliothèques Python utiles pour la Data Science et l'analyse.

Créez un DataFrame pandas à partir du dataset pour faciliter le traitement et la visualisation. Remplacez le chemin du fichier ci-dessous par celui que vous avez copié précédemment.

Python
import numpy as np
import pandas as pd # Data processing, CSV file I/O (e.g. pd.read_csv)
df=pd.read_csv('/Workspace/Users/demo@databricks.com/owid-energy-data.csv') # Replace the file path here with the workspace path you copied earlier

Exécutez la cellule. La sortie doit renvoyer le DataFrame pandas, y compris une liste de chaque colonne et de son type.

Sortie de cellule du DataFrame importé.

Comprendre les données

Comprendre les bases du dataset est crucial pour tout projet de Data Science. Cela implique de se familiariser avec la structure, les types et la qualité des données disponibles.

Dans un Notebook Databricks, vous pouvez utiliser la commande display(df) pour afficher le dataset.

Output de la cellule affichant le dataset sous forme de table.

Étant donné que le dataset comporte plus de 10 000 lignes, cette commande renvoie un dataset tronqué. À gauche de chaque colonne, vous pouvez voir le type de données de la colonne. Pour en savoir plus, consultez Formater les colonnes.

Utilisez pandas pour obtenir des insight sur les données.

Pour comprendre efficacement votre dataset, utilisez les commandes pandas suivantes :

  • La commande df.shape renvoie les dimensions du DataFrame, vous donnant un aperçu rapide du nombre de lignes et de colonnes.

    Sortie de cellule affichant df.shape.

  • La commande df.dtypes fournit les types de données de chaque colonne, vous aidant à comprendre le type de données que vous traitez. Vous pouvez également voir le type de données pour chaque colonne dans la table des résultats.

    Sortie de cellule affichant df.dtypes.

  • La commande df.describe() génère des statistiques descriptives pour les colonnes numériques, telles que la moyenne, l'écart type et les centiles, ce qui peut vous aider à identifier des modèles, à détecter des anomalies et à comprendre la distribution de vos données. Utilisez-le avec display() pour afficher des statistiques récapitulatives dans un format tabulaire avec lequel vous pouvez interagir. Consultez Explorer les données à l’aide de la table de sortie du notebook Databricks.

    Sortie de cellule affichant df.describe.

Générer un profilage des données

remarque

Disponible dans Databricks Runtime 9.1 LTS et versions ultérieures.

Les Notebooks Databricks incluent des capacités de profilage des données intégrées. Lorsque vous affichez un DataFrame avec la fonction d'affichage Databricks, vous pouvez générer un profilage des données à partir de la sortie de la table.

Python
# Display the DataFrame, then click "+ > Data Profile" to generate a data profile
display(df)

Cliquez pour générer un profilage des données à partir de la sortie de la table.

Cliquez sur **+** > **Profilage des données** à côté de la **Table** dans la sortie. Ceci exécute une nouvelle commande qui génère un profil des données dans le DataFrame.

Le profilage des données généré à partir de la sortie de la table.

Le profil de données inclut des statistiques récapitulatives pour les colonnes numériques, de chaîne de caractères et de date, ainsi que des histogrammes des distributions de valeurs pour chaque colonne. Vous pouvez également générer du profilage des données par programme ; voir la commande de résumé (dbutils.data.summarize).

Nettoyez les données

Le nettoyage des données est une étape vitale de l'EDA pour s'assurer que le dataset est précis, cohérent et prêt pour une analyse significative. Ce processus implique plusieurs tâches clés pour s'assurer que les données sont prêtes pour l'analyse, y compris :

  • Identification et suppression de toutes les données en double.
  • Gestion des valeurs manquantes, ce qui peut impliquer de les remplacer par une valeur spécifique ou de supprimer les lignes affectées.
  • Standardisation des types de données (par exemple, conversion des chaînes en datetime) par le biais de conversions et de Transformations pour assurer la cohérence. Vous voudrez peut-être également convertir les données dans un format plus facile à utiliser.

Cette phase de nettoyage est essentielle car elle améliore la qualité et la fiabilité des données, permettant une analyse plus précise et plus pertinente.

Astuce : utilisez Genie Code pour vous aider dans les tâches de nettoyage des données

Vous pouvez utiliser Genie Code pour vous aider à générer du code. Créez une nouvelle cellule de code et cliquez sur le link Générer ou utilisez l'icône Genie Code en haut à droite pour ouvrir Genie Code. Saisissez une query pour Genie Code. Genie Code peut soit générer du code Python ou SQL, soit générer une description textuelle. Pour obtenir des résultats différents, cliquez sur Régénérer .

Par exemple, essayez les invites suivantes pour utiliser Genie Code afin de vous aider à nettoyer les données :

  • Vérifiez si df contient des colonnes ou des lignes en double. Imprimez les doublons. Alors, supprimez les doublons.
  • Sous quel format sont les colonnes de date ? Changez-le en 'YYYY-MM-DD'.
  • Je ne vais pas utiliser la colonne XXX. Supprimez-le.

Consultez Obtenir de l’aide au codage auprès de Genie Code.

Supprimer les données dupliquées

Vérifiez si les données comportent des lignes ou des colonnes en double. Si oui, supprimez-les.

astuce

Utilisez Genie Code pour générer du code pour vous.

Essayez de saisir l'invite : « Vérifiez si df contient des colonnes ou des lignes en double. Imprimez les doublons. « Supprimez ensuite les doublons. » « Genie Code peut générer du code tel que l'exemple ci-dessous. »

Python
# Check for duplicate rows
duplicate_rows = df.duplicated().sum()

# Check for duplicate columns
duplicate_columns = df.columns[df.columns.duplicated()].tolist()

# Print the duplicates
print("Duplicate rows count:", duplicate_rows)
print("Duplicate columns:", duplicate_columns)

# Drop duplicate rows
df = df.drop_duplicates()

# Drop duplicate columns
df = df.loc[:, ~df.columns.duplicated()]

Dans ce cas, le dataset ne contient pas de données en double.

Gérer les valeurs nulles ou manquantes

Une façon courante de traiter les valeurs NaN ou nulles est de les remplacer par 0 pour un traitement mathématique plus facile.

Python
df = df.fillna(0) # Replace all NaN (Not a Number) values with 0

Ceci garantit que toutes les données manquantes dans le DataFrame sont remplacées par 0, ce qui peut être utile pour les étapes d’analyse ou de traitement de données ultérieures où les valeurs manquantes pourraient causer des problèmes.

Reformater les dates

Les dates sont souvent formatées de diverses manières dans différents datasets. Elles peuvent être au format date, chaînes de caractères ou entiers.

Pour cette analyse, traitez la colonne year comme un entier. Voici une façon de procéder à l'aide du code suivant :

Python
# Ensure the 'year' column is converted to the correct data type (integer for year)
df['year'] = pd.to_datetime(df['year'], format='%Y', errors='coerce').dt.year

# Confirm the changes
df.year.dtype

Ceci garantit que la colonne year ne contient que des valeurs d'année entières, les entrées non valides étant converties en NaT (Pas une heure).

Explorez les données à l'aide de la table de sortie du Notebook Databricks

Databricks fournit des fonctionnalités intégrées pour vous aider à explorer vos données à l'aide de la table de sortie.

Dans une nouvelle cellule, utilisez display(df) pour afficher le dataset en tant que table.

Explorer les données à l'aide de la table de sortie du Notebook Databricks.

À l'aide de la table de sortie, vous pouvez explorer vos données de plusieurs manières :

Recherchez les données pour une chaîne ou une valeur spécifique.

Cliquez sur l'icône de recherche en haut à droite du tableau et saisissez votre recherche.

Recherchez une valeur dans la sortie du tableau.

Filtrer pour des conditions spécifiques

Vous pouvez utiliser des filtres de tableau intégrés pour filtrer vos colonnes selon des conditions spécifiques. Il existe plusieurs façons de créer un filtre. Consultez Filtrer les résultats.

astuce

Utilisez Genie Code pour créer des filtres. Cliquez sur l'icône de filtre en haut à droite de la table. Entrez votre condition de filtre. Genie Code génère automatiquement un filtre pour vous.

Filtrer la sortie du tableau à l'aide de Genie Code.

Créer des visualisations en utilisant le dataset

En haut du tableau de sortie, cliquez sur + > Visualisation pour ouvrir l'éditeur de visualisation.

Ajouter une visualisation en utilisant la sortie de table.

Sélectionnez le type de visualisation et les colonnes que vous souhaitez visualiser. L'éditeur affiche un aperçu du graphique basé sur votre configuration. Par exemple, l'image ci-dessous montre comment ajouter plusieurs graphiques linéaires pour afficher la consommation de diverses sources d'énergie renouvelables au fil du temps.

Configurez la visualisation à l'aide de l'éditeur de visualisation.

Cliquez sur Enregistrer pour ajouter la visualisation comme un tab dans le résultat de la cellule.

Voir Créer une nouvelle visualisation.

Explorez et visualisez les données à l'aide de bibliothèques Python

L'exploration des données à l'aide de visualisations est un aspect fondamental de l'EDA. Les visualisations permettent de découvrir des modèles, des tendances et des relations au sein des données qui pourraient ne pas être immédiatement apparents par la seule analyse numérique. Utilisez des bibliothèques telles que Plotly ou Matplotlib pour les techniques de visualisation courantes, notamment les nuages de points, les graphiques à barres, les graphiques linéaires et les histogrammes. Ces outils visuels permettent aux data scientists d'identifier les anomalies, de comprendre les distributions de données et d'observer les corrélations entre les variables. Par exemple, les nuages de points peuvent mettre en évidence les valeurs aberrantes, tandis que les tracés de séries chronologiques peuvent révéler les tendances et la saisonnalité.

Créer un tableau pour les pays uniques

Examinez les pays inclus dans le dataset en créant un tableau pour les pays uniques. La création d'un tableau vous montre les entités listées en tant que country.

Python
# Get the unique countries
unique_countries = df['country'].unique()
unique_countries

Résultat :

Sortie de cellule affichant un tableau de pays uniques.

insight:

La colonne country comprend diverses entités, y compris le monde, les pays à revenu élevé, l'Asie et les États-Unis, qui ne sont pas toujours directement comparables. Il pourrait être plus utile de filtrer les données par région.

Tendance des émissions pour les 10 principaux émetteurs (de 2000 à 2022)

Supposons que vous souhaitiez concentrer votre analyse sur les 10 pays ayant les émissions de gaz à effet de serre les plus élevées dans les années 2000. Vous pouvez filtrer les données pour les années que vous souhaitez examiner et les 10 pays ayant le plus d'émissions, puis utiliser plotly pour créer un graphique linéaire montrant leurs émissions au fil du temps.

Python
import plotly.express as px

# Filter data to include only years from 2000 to 2022
filtered_data = df[(df['year'] >= 2000) & (df['year'] <= 2022)]

# Get the top 10 countries with the highest emissions in the filtered data
top_countries = filtered_data.groupby('country')['greenhouse_gas_emissions'].sum().nlargest(10).index

# Filter the data for those top countries
top_countries_data = filtered_data[filtered_data['country'].isin(top_countries)]

# Plot emissions trends over time for these countries
fig = px.line(top_countries_data, x='year', y='greenhouse_gas_emissions', color='country',
title="Greenhouse Gas Emissions Trends for Top 10 Countries (2000 - 2022)")
fig.show()

Résultat :

Graphique montrant les tendances des émissions de gaz à effet de serre pour les 10 plus grands émetteurs de 2000 à 2022.

insight:

Les émissions de gaz à effet de serre ont eu tendance à augmenter de 2000 à 2022, à l'exception de quelques pays où les émissions étaient relativement stables, avec un léger déclin sur cette période.

Filtrer et représenter graphiquement les émissions par région

Filtrez les données par région et calculez les émissions totales pour chaque région. Ensuite, tracez les données sous forme de graphique à barres :

Python
# Filter out regional entities
regions = ['Africa', 'Asia', 'Europe', 'North America', 'South America', 'Oceania']

# Calculate total emissions for each region
regional_emissions = df[df['country'].isin(regions)].groupby('country')['greenhouse_gas_emissions'].sum()

# Plot the comparison
fig = px.bar(regional_emissions, title="Greenhouse Gas Emissions by Region")
fig.show()

Résultat :

Graphique présentant les émissions de gaz à effet de serre par région.

insight :

L'Asie a les émissions de gaz à effet de serre les plus élevées. L'Océanie, l'Amérique du Sud et l'Afrique produisent les émissions de gaz à effet de serre les plus faibles.

Calculer et représenter graphiquement la croissance de la part des énergies renouvelables

Créez une nouvelle fonctionnalité/colonne qui calcule la part d'énergie renouvelable comme le rapport de la consommation d'énergie renouvelable sur la consommation d'énergie primaire. Ensuite, classez les pays en fonction de leur part moyenne d'énergie renouvelable. Pour les 10 principaux pays, représentez leur part d'énergie renouvelable au fil du temps :

Python
# Calculate the renewable energy share and save it as a new column called "renewable_share"
df['renewable_share'] = df['renewables_consumption'] / df['primary_energy_consumption']

# Rank countries by their average renewable energy share
renewable_ranking = df.groupby('country')['renewable_share'].mean().sort_values(ascending=False)

# Filter for countries leading in renewable energy share
leading_renewable_countries = renewable_ranking.head(10).index
leading_renewable_data = df[df['country'].isin(leading_renewable_countries)]
# filtered_data = df[(df['year'] >= 2000) & (df['year'] <= 2022)]
leading_renewable_data_filter=leading_renewable_data[(leading_renewable_data['year'] >= 2000) & (leading_renewable_data['year'] <= 2022)]
# Plot renewable share over time for top renewable countries
fig = px.line(leading_renewable_data_filter, x='year', y='renewable_share', color='country',
title="Renewable Energy Share Growth Over Time for Leading Countries")
fig.show()

Résultat :

Graphique montrant la croissance de la part des énergies renouvelables au fil du temps pour les 10 pays leaders en matière d’énergies renouvelables.

insight:

La Norvège et l’Islande sont les chefs de file mondiaux en matière d’énergies renouvelables, avec plus de la moitié de leur consommation provenant des énergies renouvelables.

L'Islande et la Suède ont connu la plus forte croissance de leur part d'énergie renouvelable. Tous les pays ont connu des baisses et des hausses occasionnelles, démontrant que la croissance de la part d'énergie renouvelable n'est pas nécessairement linéaire. L'Afrique centrale a connu une baisse au début des années 2010, mais a rebondi en 2020.

Nuage de points : Afficher l'impact de l'énergie renouvelable pour les principaux émetteurs

Filtrez les données pour les 10 principaux émetteurs, puis utilisez un nuage de points pour examiner la part des énergies renouvelables par rapport aux émissions de gaz à effet de serre au fil du temps.

Python
# Select top emitters and calculate renewable share vs. emissions
top_emitters = df.groupby('country')['greenhouse_gas_emissions'].sum().nlargest(10).index
top_emitters_data = df[df['country'].isin(top_emitters)]

# Plot renewable share vs. greenhouse gas emissions over time
fig = px.scatter(top_emitters_data, x='renewable_share', y='greenhouse_gas_emissions',
color='country', title="Impact of Renewable Energy on Emissions for Top Emitters")
fig.show()

Résultat :

Graphique montrant l&#39;impact des énergies renouvelables sur les émissions pour les principaux émetteurs.

insight:

Lorsqu'un pays utilise davantage d'énergies renouvelables, ses émissions de gaz à effet de serre augmentent également, ce qui signifie que sa consommation énergétique totale croît plus rapidement que sa consommation d'énergies renouvelables. L'Amérique du Nord constitue une exception en ce que ses émissions de gaz à effet de serre sont restées relativement constantes au fil des ans, car sa part d'énergie renouvelable a continué d'augmenter.

Modèle de consommation mondiale d'énergie projetée

Agrégez la consommation mondiale d'énergie primaire par année, puis construisez un modèle de moyenne mobile intégrée autorégressive (ARIMA) pour projeter la consommation énergétique mondiale totale pour les prochaines années. Tracez la consommation d'énergie historique et prévisionnelle à l'aide de Matplotlib.

Python
import pandas as pd
from statsmodels.tsa.arima.model import ARIMA
import matplotlib.pyplot as plt

# Aggregate global primary energy consumption by year
global_energy = df[df['country'] == 'World'].groupby('year')['primary_energy_consumption'].sum()

# Build an ARIMA model for projection
model = ARIMA(global_energy, order=(1, 1, 1))
model_fit = model.fit()
forecast = model_fit.forecast(steps=10) # Projecting for 10 years

# Plot historical and forecasted energy consumption
plt.plot(global_energy, label='Historical')
plt.plot(range(global_energy.index[-1] + 1, global_energy.index[-1] + 11), forecast, label='Forecast')
plt.xlabel("Year")
plt.ylabel("Primary Energy Consumption")
plt.title("Projected Global Energy Consumption")
plt.legend()
plt.show()

Résultat :

Graphique présentant la consommation mondiale d&#39;énergie historique et projetée.

insight:

Ce modèle prévoit que la consommation mondiale d'énergie continuera d'augmenter.

Exemple de Notebook

Utilisez le notebook suivant pour effectuer les étapes de cet article. Pour obtenir des instructions sur l'importation d'un notebook dans un workspace Databricks, consultez Importer un notebook.

Tutoriel : EDA avec des données énergétiques mondiales

Étapes suivantes

Maintenant que vous avez effectué une première analyse exploratoire des données sur votre dataset, essayez les étapes suivantes :

  • Consultez l'annexe du notebook d'exemple pour d'autres exemples de visualisation EDA.
  • Si vous avez rencontré des erreurs en parcourant ce tutoriel, essayez d’utiliser le débogueur intégré pour parcourir votre code pas à pas. Consultez Déboguer les notebooks.
  • Partagez votre Notebook avec votre équipe afin qu'elle puisse comprendre votre analyse. Selon les permissions que vous leur accordez, ils peuvent aider à développer du code pour approfondir l'analyse ou ajouter des commentaires et des suggestions pour une investigation plus poussée.
  • Une fois que vous avez finalisé votre analyse, créez un tableau de bord de Notebook ou un AI/BI dashboard avec les visualisations clés à partager avec les parties prenantes.