मैं निम्नलिखित शब्दकोश को डेटाफ्रेम में बदलना चाहता हूं:
x = {'a': {'list1': [1, 2, 3, 4],
'list2': [5, 6, 7, 8]
},
'b': {'list1': [6, 7, 8, 9],
'list2': [4, 4, 3, 4]
},
'c': {'list1': [6, 45, 234, 4],
'list2': [213, 87, 243, 4]
}
}
आउटपुट डेटाफ्रेम इस तरह दिखना चाहिए:
letter list1 list2
a [1, 2, 3, 4] [5, 6, 7, 8]
b [6, 7, 8, 9] [4, 4, 3, 4]
c [6, 45, 234, 4] [213, 87, 243, 4]
मैंने इन तरीकों की कोशिश की है:
import pandas as pd
pd.DataFrame(x)
a b c
list1 [1, 2, 3, 4] [6, 7, 8, 9] [6, 45, 234, 4]
list2 [5, 6, 7, 8] [4, 4, 3, 4] [213, 87, 243, 4]
दूसरे, मैंने कोशिश की:
pd.concat({k: pd.Series(v) for k, v in x.items()}).reset_index()
level_0 level_1 0
0 a list1 [1, 2, 3, 4]
1 a list2 [5, 6, 7, 8]
2 b list1 [6, 7, 8, 9]
3 b list2 [4, 4, 3, 4]
4 c list1 [6, 45, 234, 4]
5 c list2 [213, 87, 243, 4]
दूसरा तरीका करीब है लेकिन फिर प्रत्येक "अक्षर" में 2 पंक्तियां होती हैं। मैं इसे सही तरीके से कैसे परिवर्तित करूं?
2 जवाब
आप DataFrame.T
< द्वारा स्थानांतरित कर सकते हैं /a> अनुक्रमणिका नाम का नाम बदलें और अनुक्रमणिका को DataFrame.rename_axis
कॉलम letter
पर DataFrame.reset_index
:
df = pd.DataFrame(x).T.rename_axis('letter').reset_index()
print (df)
letter list1 list2
0 a [1, 2, 3, 4] [5, 6, 7, 8]
1 b [6, 7, 8, 9] [4, 4, 3, 4]
2 c [6, 45, 234, 4] [213, 87, 243, 4]
या DataFrame.from_dict
के साथ समाधान ए>:
df = pd.DataFrame.from_dict(x, orient='index').rename_axis('letter').reset_index()
आप orient
तर्क का उपयोग कर सकते हैं, देखें यहां -
pd.DataFrame.from_dict(x, orient='index').rename_axis('letter').reset_index()
letter list1 list2
0 a [1, 2, 3, 4] [5, 6, 7, 8]
1 b [6, 7, 8, 9] [4, 4, 3, 4]
2 c [6, 45, 234, 4] [213, 87, 243, 4]
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।