ETL et ELT en Python
Jake Roach
Data Engineer
Les données doivent être bien transformées pour apporter de la valeur aux utilisatrices et 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 seulement les entrées non nulles
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, :]
# Retirer les colonnes superflues
cleaned = raw_stock_data.loc[:, ["timestamps", "open", "close"]]
# Combiner en une seule é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 de données doivent souvent être convertis pour les cas d'utilisation 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 plus petites et plus grandes lignes
print(cleaned.nsmallest(10, ["timestamps"]))
print(cleaned.nlargest(10, ["timestamps"]))
ETL et ELT en Python