कई बार अजगर विभिन्न स्रोतों से डेटा प्राप्त करेगा जो कि सीएसवी, जेएसओएन आदि जैसे विभिन्न स्वरूपों में हो सकता है जिसे अजगर सूची या शब्दकोश आदि में परिवर्तित किया जा सकता है। लेकिन पांडा जैसे पैकेजों का उपयोग करके गणना या विश्लेषण को लागू करने के लिए, हमें इस डेटा को परिवर्तित करने की आवश्यकता है एक डेटाफ्रेम। इस लेख में हम देखेंगे कि हम एक दी गई पायथन सूची को कैसे परिवर्तित कर सकते हैं, जिसके तत्व एक नेस्टेड डिक्शनरी हैं, एक पांडा डेटाफ्रेम में।
हम सबसे पहले नेस्टेड डिक्शनरी की सूची लेते हैं और उसमें से डेटा की पंक्तियाँ निकालते हैं। फिर हम पंक्तियों को नई सूची में जोड़ने के लिए लूप के लिए एक और बनाते हैं जो मूल रूप से खाली बनाई गई थी। अंत में हम डेटा फ़्रेम बनाने के लिए पांडा लाइब्रेरी में डेटाफ़्रेम फ़ंक्शन लागू करते हैं।
उदाहरण
import pandas as pd
# Given nested dictionary
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 = []
# Getting rows
for data in list:
data_row = data['Fruit']
n = data['Name']
for row in data_row:
row['Name'] = n
rows.append(row)
# Convert to data frame
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
पिवट लागू करना
हम डेटा को फिर से व्यवस्थित करने के लिए पिवट_टेबल फ़ंक्शन को भी लागू कर सकते हैं जिस तरह से हम चाहते हैं।
उदाहरण
import pandas as pd
# List of nested dictionary initialization
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"
}
]
#print(list)
rows = []
# appending rows
for data in list:
data_row = data['Fruit']
n = data['Name']
for row in data_row:
row['Name'] = n
rows.append(row)
# using data frame
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