ETL et ELT en Python
Jake Roach
Data Engineer
Les données doivent être correctement transformées pour apporter de la valeur aux utilisateurs en aval

pandas offre de puissants outils pour transformer des données tabulaires
.loc[].to_datetime().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]]
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')
Transformer des données comporte des risques :
# 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