पांडा के साथ अलग-अलग स्तंभों में शब्दकोशों के एक स्तंभ को विभाजित / विस्फोट करें

| | | | | | | | | | | | | | | |

मेरे पास postgreSQL डेटाबेस में डेटा सहेजा गया है। मैं इस डेटा को Python2.7 का उपयोग करके क्वेरी कर रहा हूं और इसे पंडों के डेटाफ्रेम में बदल रहा हूं। हालाँकि, इस डेटाफ़्रेम के अंतिम कॉलम में इसके अंदर मूल्यों का एक शब्दकोश है। DataFrame df इस तरह दिखता है:

स्टेशन आईडी प्रदूषक 8809 {"a": "46", "b": "3", " ;सी": "12"} 8810 {"ए": "36", "बी": "5", "सी": "8"} 8811 {"बी": " 2", "सी": "7"} 8812 {"सी": "11"} 8813 {"a": "82", "सी": "15"}  

मुझे इस कॉलम को अलग-अलग कॉलम में विभाजित करने की आवश्यकता है, ताकि DataFrame `df2 इस तरह दिखे:

स्टेशन आईडी abc 8809 46 3 12 8810 36 5 8 8811 NaN 2 7 8812 NaN NaN 11 8813 82 NaN 15 

मेरे पास सबसे बड़ी समस्या यह है कि सूचियां समान लंबाई की नहीं हैं। लेकिन सभी सूचियां केवल ऊपर हैं समान 3 मानों के लिए: "a", "b", और "c"। और वे हमेशा एक ही क्रम में दिखाई देते हैं ("a" पहले, "b" सेकंड, "c" तीसरा)। p>

निम्न कोड काम करने के लिए उपयोग किया जाता है और ठीक वही लौटाता है जो मैं चाहता था (df2)।

objs = [df, pandas.DataFrame(df["Pollutant Levels"].tolist()).iloc[:, :3]] df2 = pandas.concat(objs,axis=1) ड्रॉप ("प्रदूषक स्तर", अक्ष = 1) प्रिंट (df2) 

मैं पिछले सप्ताह ही इस कोड को चला रहा था और यह ठीक काम कर रहा था। लेकिन अब मेरा कोड टूट गया है और मुझे यह त्रुटि लाइन से मिलती है [4]:

IndexError: आउट-ऑफ-बाउंड्स ऑन स्लाइस (एंड) 

मैंने कोड में कोई बदलाव नहीं किया है लेकिन अब मुझे त्रुटि मिल रही है। मुझे लगता है कि यह मेरी पद्धति के मजबूत या उचित नहीं होने के कारण है।

सूचियों के इस कॉलम को अलग-अलग कॉलम में विभाजित करने के बारे में कोई सुझाव या मार्गदर्शन की अत्यधिक सराहना की जाएगी!

संपादित करें: मुझे लगता है कि मेरे कोड पर .tolist() और .apply तरीके काम नहीं कर रहे हैं क्योंकि यह एक यूनिकोड स्ट्रिंग है, यानी:

#My डेटा फ़ॉर्मैट u{" a": "1", "b": "2", "c": "3"} #और नहीं {u"a": "1", u"b": "2", u"c": "3"} 

डेटा इस प्रारूप में postgreSQL डेटाबेस से आयात किया जाता है। इस मुद्दे के साथ कोई मदद या विचार? क्या यूनिकोड को बदलने का कोई तरीका है?