Python में ETL और ELT
Jake Roach
Data Engineer
डेटा को सही तरह ट्रांसफॉर्म करना जरूरी है ताकि downstream यूज़र्स को वैल्यू मिले

pandas टैब्युलर डेटा ट्रांसफॉर्म करने के लिए शक्तिशाली टूल देता है
.loc[].to_datetime().loc[] से DataFrame के दोनों डाइमेंशन ट्रांसफॉर्म किए जा सकते हैं
# केवल non-zero एंट्री रखें
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, :]
# अतिरिक्त कॉलम हटाएँ
cleaned = raw_stock_data.loc[:, ["timestamps", "open", "close"]]
# एक ही स्टेप में मिलाएँ
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, ["timestamps", "open", "close"]]
.iloc[] integer indexing से DataFrames फ़िल्टर करता है
cleaned = raw_stock_data.iloc[[0:50], [0, 1, 2]]
डाउनस्ट्रीम उपयोग के लिए अक्सर डेटा टाइप बदलने होते हैं
.to_datetime()# "timestamps" कॉलम अभी ऐसा दिखता है: "20230101085731"
# "timestamps" कॉलम को datetime टाइप में बदलें
cleaned["timestamps"] = pd.to_datetime(cleaned["timestamps"], format="%Y%m%d%H%M%S")
Timestamp('2023-01-01 08:57:31')
# "timestamps" कॉलम अभी ऐसा दिखता है: 1681596000011
# "timestamps" कॉलम को datatime टाइप में बदलें
cleaned["timestamps"] = pd.to_datetime(cleaned["timestamps"], unit="ms")
Timestamp('2023-04-15 22:00:00.011000')
डेटा ट्रांसफॉर्म करते समय ये जोखिम होते हैं:
# DataFrame की जाँच के कई तरीके
cleaned = raw_stock_data.loc[raw_stock_data["open"] > 0, ["timestamps", "open", "close"]]
print(cleaned.head())
# सबसे छोटे और सबसे बड़े रिकॉर्ड लौटाएँ
print(cleaned.nsmallest(10, ["timestamps"]))
print(cleaned.nlargest(10, ["timestamps"]))
Python में ETL और ELT