Transformer des données avec pandas

ETL et ELT en Python

Jake Roach

Data Engineer

Transformer des données dans un pipeline

Les données doivent être correctement transformées pour apporter de la valeur aux utilisateurs en aval

Un flux de transformation de données.

pandas offre de puissants outils pour transformer des données tabulaires

  • .loc[]
  • .to_datetime()
ETL et ELT en Python

Filtrer des enregistrements avec .loc[]

.loc[] permet de transformer les deux dimensions d’un DataFrame

# Conserver uniquement les entrées non nulles
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, :]
# Supprimer les colonnes en trop
cleaned = raw_stock_data.loc[:, ["timestamps", "open", "close"]]
# Combiner en une étape
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, ["timestamps", "open", "close"]]

.iloc[] utilise l’indexation entière pour filtrer les DataFrames

cleaned = raw_stock_data.iloc[[0:50], [0, 1, 2]]
ETL et ELT en Python

Modifier les types de données

Les types doivent souvent être convertis pour les usages en aval

  • .to_datetime()
# La colonne "timestamps" ressemble actuellement à : "20230101085731"
# Convertir la colonne "timestamps" en type datetime
cleaned["timestamps"] = pd.to_datetime(cleaned["timestamps"], format="%Y%m%d%H%M%S")
Timestamp('2023-01-01 08:57:31')
# La colonne "timestamps" ressemble actuellement à : 1681596000011
# Convertir la colonne "timestamps" en type datetime
cleaned["timestamps"] = pd.to_datetime(cleaned["timestamps"], unit="ms")
Timestamp('2023-04-15 22:00:00.011000')
ETL et ELT en Python

Valider les transformations

Transformer des données comporte des risques :

  • Perdre des informations
  • Créer des données erronées
# Plusieurs façons d’examiner un DataFrame
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, ["timestamps", "open", "close"]]
print(cleaned.head())
# Retourner les enregistrements les plus petits et les plus grands
print(cleaned.nsmallest(10, ["timestamps"]))
print(cleaned.nlargest(10, ["timestamps"]))
ETL et ELT en Python

Passons à la pratique !

ETL et ELT en Python

Preparing Video For Download...