कई बार पायथन को विभिन्न स्रोतों से डेटा प्राप्त होता है जो csv, JSON आदि जैसे विभिन्न फॉर्मेट में हो सकते हैं जिन्हें पायथन सूची या डिक्शनरी में बदला जा सकता है। लेकिन पैकेज जैसे पांडास का उपयोग करके गणना या विश्लेषण लागू करने के लिए, हमें इस डेटा को डेटाफ्रेम में बदलने की आवश्यकता होती है। इस लेख में हम देखेंगे कि हम दी गई पायथन सूची जिसके तत्व नेस्टेड डिक्शनरी हैं, को पांडास DataFrame में कैसे बदल सकते हैं।
हम पहले नेस्टेड डिक्शनरी की सूची लेते हैं और उससे डेटा की पंक्तियां निकालते हैं। फिर हम पंक्तियों को नई सूची में जोड़ने के लिए एक और फॉर लूप बनाते हैं जो मूल रूप से खाली बनाई गई थी। अंत में हम पांडास लाइब्रेरी में DataFrame फ़ंक्शन लागू करके डेटा फ्रेम बनाते हैं।
उदाहरण
import pandas as pd
# दी गई नेस्टेड डिक्शनरी सूची
data_list = [
{
"Fruit": [{"Price": 15.2, "Quality": "A"},
{"Price": 19, "Quality": "B"},
{"Price": 17.8, "Quality": "C"}],
"Name": "Orange"
},
{
"Fruit": [{"Price": 23.2, "Quality": "A"},
{"Price": 28, "Quality": "B"}],
"Name": "Grapes"
}
]
rows = []
# डेटा के लिए पंक्तियां प्राप्त करना
for data in data_list:
data_row = data['Fruit']
n = data['Name']
for row in data_row:
row['Name'] = n
rows.append(row)
# डेटा फ्रेम में बदलें
df = pd.DataFrame(rows)
print(df)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
Price Quality Name 0 15.2 A Orange 1 19.0 B Orange 2 17.8 C Orange 3 23.2 A Grapes 4 28.0 B Grapes
pivot लागू करना
हम डेटा को अपनी इच्छानुसार पुनर्व्यवस्थित करने के लिए pivot_table फ़ंक्शन भी लागू कर सकते हैं।
उदाहरण
import pandas as pd
# नेस्टेड डिक्शनरी की सूची इनिशियलाइज़ेशन
data_list = [
{
"Fruit": [{"Price": 15.2, "Quality": "A"},
{"Price": 19, "Quality": "B"},
{"Price": 17.8, "Quality": "C"}],
"Name": "Orange"
},
{
"Fruit": [{"Price": 23.2, "Quality": "A"},
{"Price": 28, "Quality": "B"}],
"Name": "Grapes"
}
]
rows = []
# पंक्तियां जोड़ना
for data in data_list:
data_row = data['Fruit']
n = data['Name']
for row in data_row:
row['Name'] = n
rows.append(row)
# डेटा फ्रेम का उपयोग करके
df = pd.DataFrame(rows)
df = df.pivot_table(index='Name', columns=['Quality'],
values=['Price']).reset_index()
print(df)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
Name Price Quality A B C 0 Grapes 23.2 28.0 NaN 1 Orange 15.2 19.0 17.8
मुख्य चरण सारांश:
- नेस्टेड संरचना को फ्लैट करें (प्रत्येक सब-आइटम के लिए पेरेंट कुंजी जोड़ें)
pd.DataFrame()से DataFrame बनाएं- वैकल्पिक:
pivot_table()से पुनर्व्यवस्थित करें