ETL et ELT en Python
Jake Roach
Data Engineer
Les données doivent être bien transformées pour offrir 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 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 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')
La transformation de 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