2016-11-16 12 views
5

मैं और निम्न स्तंभ खिताब के साथ एक मेज एक पंक्ति उदाहरण है साथ लंबे स्वरूप बदलने के लिए अजगर पांडा वाइड:कॉलम टाइटल spliting

Subject level_1 Result1 Result2 
0 John Test1  10  0.5 
1 John Test2  20  0.3 

:

Subject Test1-Result1 Test1-Result2 Test2-Result1 Test2-Result2 
0 John    10   0.5    20   0.3 

मैं इसे करने के लिए बदलने के लिए चाहते हैं विषयों की सूची टेस्ट 1 के लिए दो बार और फिर टेस्ट 2 के लिए दोहराई गई।

मुझे लगता है कि मैं इसे लूप के लिए उपयोग कर सकता हूं, लेकिन क्या यह एक और पाइथोनिक तरीका है?

अतिरिक्त जटिलता के लिए, मुझे प्रत्येक परीक्षण के लिए जानकारी का एक अतिरिक्त कॉलम जोड़ना होगा। मुझे लगता है कि मैं एक शब्दकोश का उपयोग कर सकता हूं, लेकिन मैं प्रत्येक संबंधित पंक्ति में टेस्ट 1 कहने के बारे में जानकारी कैसे डाल सकता हूं?

+0

संपादन के लिए धन्यवाद! – JDS

उत्तर

5

आप एक बहु सूचकांक स्तंभ में अपने कॉलम विभाजित कर सकते हैं और फिर अपने डेटा फ्रेम नयी आकृति प्रदान:

df.set_index('Subject', inplace=True) 
df.columns = df.columns.str.split("-", expand=True) 
df.stack(level=0).rename_axis(['Subject', 'Test']).reset_index() 

enter image description here

+1

एक पल के लिए एक ही मस्तिष्क साझा करना होगा :-) – piRSquared

+0

यह वास्तव में अच्छा काम करता है और मुझे पांडस मल्टीलाइन इंडेक्सिंग को समझने में मदद करता है। धन्यवाद! – JDS

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