2016-12-05 7 views
5

एक ऐसी पोस्ट है जिसमें एक पांडा डेटाफ्रेम को आगे की प्रक्रिया के लिए एक शब्दकोश में परिवर्तित किया जाता है।आदेश के लिए पांडा डेटाफ्रेम

कोड यह करने के लिए है: {column -> {index -> value}}

वहाँ है एक त्वरित तरीका के बजाय इस {column -> {index -> value}} इस पाने के लिए:

df = pd.read_excel(open('data/file.xlsx', 'rb'), sheetname="Sheet1") 
dict = df.set_index('id').T.to_dict('dict') 

जो कुछ इस तरह की पैदावार एक वापसी मान के रूप में OrderedDict(column, value)?

वर्तमान में, मैं पांडा से उत्पन्न शब्दकोश का उपयोग कर रहा हूं और उन मानों को एक ऑर्डरर्ड डिक्शनरी में एक-एक करके असाइन कर रहा हूं। यह इष्टतम तरीका, के रूप में आदेश अव्यवस्थित नहीं है

उदाहरण इनपुट: एक एक्सेल इस तरह दायर:

Unique_id | column1 | column2 | column3 | column 4 
1   | 3  | 4  | 43  | 90 
2   | 54  | 6  | 43  | 54 

और आउटपुट एक आदेश दिया शब्दकोश इस तरह होना चाहिए:

{1:[3,4,43,90], 2:[54,6,43,54]} 
+0

सूचकांक के बारे में क्या? – MMF

+0

@ एमएमएफ कृपया समझाएं। – Pavlos

+0

'ऑर्डरर्ड डिक्ट (कॉलम, वैल्यू) 'इंडेक्स को ध्यान में रखता नहीं है। इसे रखना नहीं चाहते हैं? ? – MMF

उत्तर

4

कॉलम से कुंजियों के साथ आप OrderedDict का उपयोग करके वांछित क्रम में शब्दकोश प्राप्त कर सकते हैं। निम्नलिखित को एक उदाहरण के रूप में कार्य करना चाहिए:

from collections import OrderedDict 

# Get the unordered dictionary 
unordered_dict = df.set_index('Unique_id').T.to_dict('list') 

# Then order it 
ordered_dict = OrderedDict((k,unordered_dict.get(k)) for k in df.Unique_id) 
# OrderedDict([(1, [3, 4, 43, 90]), (2, [54, 6, 43, 54])]) 

धन्यवाद!

संबंधित मुद्दे