Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन - नेस्टेड डिक्शनरी की सूची को पंडों डेटाफ्रेम में बदलें

कई बार अजगर विभिन्न स्रोतों से डेटा प्राप्त करेगा जो कि सीएसवी, जेएसओएन आदि जैसे विभिन्न स्वरूपों में हो सकता है जिसे अजगर सूची या शब्दकोश आदि में परिवर्तित किया जा सकता है। लेकिन पांडा जैसे पैकेजों का उपयोग करके गणना या विश्लेषण को लागू करने के लिए, हमें इस डेटा को परिवर्तित करने की आवश्यकता है एक डेटाफ्रेम। इस लेख में हम देखेंगे कि हम एक दी गई पायथन सूची को कैसे परिवर्तित कर सकते हैं, जिसके तत्व एक नेस्टेड डिक्शनरी हैं, एक पांडा डेटाफ्रेम में।

हम सबसे पहले नेस्टेड डिक्शनरी की सूची लेते हैं और उसमें से डेटा की पंक्तियाँ निकालते हैं। फिर हम पंक्तियों को नई सूची में जोड़ने के लिए लूप के लिए एक और बनाते हैं जो मूल रूप से खाली बनाई गई थी। अंत में हम डेटा फ़्रेम बनाने के लिए पांडा लाइब्रेरी में डेटाफ़्रेम फ़ंक्शन लागू करते हैं।

उदाहरण

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

  1. शब्दकोश को पायथन में टुपल्स की सूची में बदलें

    पायथन में एक संग्रह प्रकार से दूसरे में कनवर्ट करना बहुत आम है। डेटा प्रोसेसिंग की जरूरतों के आधार पर हमें एक शब्दकोश में मौजूद प्रमुख मूल्य जोड़े को एक सूची में टुपल्स का प्रतिनिधित्व करने वाले जोड़े में परिवर्तित करना पड़ सकता है। इस लेख में हम इसे प्राप्त करने के तरीकों को देखेंगे। अंदर यह एक सी

  1. टुपल्स की सूची को डिक्शनरी में बदलने के लिए पायथन प्रोग्राम

    यहाँ एक टपल दिया गया है, हमारा काम टुपल्स को डिक्शनरी में बदलना है। इस समस्या को हल करने के लिए हम डिक्शनरी विधि setdefault () का उपयोग करते हैं। इस विधि में दो पैरामीटर हैं, पहला पैरामीटर को कुंजी में बदलने के लिए और दूसरे को डिक्शनरी के मान में बदलने के लिए। सेटडिफॉल्ट (कुंजी, मान) एक फ़ंक्शन है ज

  1. पायथन डिक्शनरी को सूची में कैसे बदलें?

    इस उद्देश्य के लिए पायथन के डिक्शनरी वर्ग में तीन विधियाँ हैं। मेथड्स आइटम्स (), कीज़ () और वैल्यूज़ () रिटर्न व्यू ऑब्जेक्ट्स में क्रमशः की-वैल्यू पेयर, कीज़ ओनली और वैल्यूज़ शामिल हैं। इन-बिल्ट लिस्ट मेथड इन व्यू ऑब्जेक्ट्स को लिस्ट ऑब्जेक्ट्स में कनवर्ट करता है। >>> d1 = {name: Ravi, ag