गैर-टैब्युलर डेटा को ट्रांसफॉर्म करना

Python में ETL और ELT

Jake Roach

Data Engineer

गैर-टैब्युलर डेटा को ट्रांसफॉर्म करना

ट्रांसफॉर्म कॉम्पोनेंट हाइलाइट के साथ ETL पाइपलाइन।

Python में ETL और ELT

डिक्शनरी में डेटा स्टोर करना

नेस्टेड JSON

{
    "863703000": {
        "price": {
            "open": 0.12187,
            "close": 0.09791
        },
        "volume": 1443120000
    }, 
    "863789400": {
    }, ...
}

लक्ष्य:

  • डिक्शनरी को DataFrame-तैयार फॉर्मेट में बदलें

$$

[
    [863703000, 0.12187, 0.09791, 1443120000],
    [863789400, 0.09843, ...]
]
Python में ETL और ELT

डिक्शनरी कॉम्पोनेंट्स पर इटरेट करना

# कुंजियों पर लूप करें
for key in raw_data.keys():
    ...
# मानों पर लूप करें
for value in raw_data.values():
    ...
# कुंजी और मान दोनों पर लूप करें
for key, value in raw_data.items():
    ...

.keys()

  • डिक्शनरी में स्टोर कुंजियों की सूची बनाता है

.values()

  • डिक्शनरी में स्टोर मानों की सूची बनाता है

.items()

  • कुंजी-मूल्य जोड़ों वाली ट्यूपल्स की सूची बनाता है
Python में ETL और ELT

डिक्शनरी से डेटा पार्स करना

entry = {
    "volume": 1443120000,
    "price": {
        "open": 0.12187,
        "close": 0.09791,
    }
}
# .get() से डिक्शनरी से डेटा पार्स करें
volume = entry.get("volume")
ticker = entry.get("ticker", "DCMP")
# नेस्टेड "open" मान लौटाने के लिए .get() दो बार कॉल करें
open_price = entry.get("price").get("open", 0)
Python में ETL और ELT

लिस्ट ऑफ लिस्ट्स से DataFrame बनाना

pd.DataFrame() को लिस्ट ऑफ लिस्ट्स पास करें

# लिस्ट ऑफ लिस्ट्स pd.DataFrame को पास करें
raw_data = pd.DataFrame(flattened_rows)

.columns से कॉलम हेडर सेट करें

# कॉलम बनाएँ
raw_data.columns = ["timestamps", "open", "close", "volume"]

.set_index() से इंडेक्स सेट करें

# "timestamps" को इंडेक्स कॉलम सेट करें
raw_data.set_index("timestamps")
Python में ETL और ELT

स्टॉक डेटा ट्रांसफॉर्म करना

parsed_stock_data = []

# raw_stock_data डिक्शनरी के हर कुंजी-मूल्य जोड़े पर लूप करें
for timestamp, ticker_info in raw_stock_data.items():
    parsed_stock_data.append([
        timestamp,
        ticker_info.get("price", {}).get("open", 0),  # ओपनिंग प्राइस पार्स करें
        ticker_info.get("price", {}).get("close", 0),  # क्लोजिंग प्राइस पार्स करें
        ticker_info.get("volume", 0)  # वॉल्यूम पार्स करें
    ])
# DataFrame बनाएँ, कॉलम नाम दें, और इंडेक्स सेट करें
transformed_stock_data = pd.DataFrame(parsed_stock_data)
transformed_stock_data.columns = ["timestamps", "open", "close", "volume"]
transformed_stock_data = transformed_stock_data.set_index("timestamps")
Python में ETL और ELT

अभ्यास करते हैं!

Python में ETL और ELT

Preparing Video For Download...