2016-11-16 28 views
5

çatlıyor Uzun Biçim Değişim için Geniş Python Pandalar:Sütun Başlıkları aşağıdaki kolonlar başlıkları içeren bir tablo ve bir satır örneği var

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 

ben bunu dönüştürmek istiyorum Denekler listesi ile Test1 için bir kez tekrarlandı ve tekrar Test2 için.

Sanırım bunu döngüler için kullanabilirim, ama daha pythonic bir yolu var mı?

Ekstra karmaşıklık için, her bir test için fazladan bir bilgi sütunu eklemem gerekiyor. Bir sözlük kullanabileceğimi varsayalım, ancak ilgili her satırdaki Test1 ile ilgili bilgileri nasıl ekleyebilirim?

+0

düzenleme için teşekkür ederiz! – JDS

cevap

5

Bir çok indeks sütuna Sütunlarınızın bölmek ve sonra veri çerçevesini yeniden şekillendirmek olabilir:

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

bir an için aynı beyni paylaşıyor olmalı :-) – piRSquared

+0

Bu gerçekten iyi çalıştı ve Pandas çok satırlı indekslemeyi anlamaya başlamanıza yardımcı olur. Teşekkür ederim! – JDS

İlgili konular