2013-06-25 23 views
24

Mam następujący dataframe:Python Pandy: Konwersja wierszy jako nagłówki kolumn

Year Country   medal no of medals 
1896 Afghanistan  Gold  5 
1896 Afghanistan  Silver  4 
1896 Afghanistan  Bronze  3 
1896 Algeria   Gold  1 
1896 Algeria   Silver  2 
1896 Algeria   Bronze  3 

chcę go w ten sposób.

Year Country  Gold Silver Bronze 
1896 Afghanistan 5  4   3 
1896 Algeria  1  2   3 

Stack/Unstack nie wydaje się działać.

Odpowiedz

35

Szukacie pivot_table:

In [11]: medals = df.pivot_table('no of medals', ['Year', 'Country'], 'medal') 

In [12]: medals 
Out[12]: 
medal    Bronze Gold Silver 
Year Country 
1896 Afghanistan  3  5  4 
    Algeria   3  1  2 

i jeśli chcesz zmienić kolejność kolumn:

In [12]: medals.reindex_axis(['Gold', 'Silver', 'Bronze'], axis=1) 
Out[12]: 
medal    Gold Silver Bronze 
Year Country 
1896 Afghanistan  5  4  3 
    Algeria   1  2  3 
+7

Stwarza to wielopoziomowe wskaźnik, który nie jest w 100% to, co chciał. Pozbądź się go za pomocą 'medals.reset_index (drop = False, inplace = True)' następnie wykonaj 'medals.reindex_axis (['Year', 'Country', 'Gold', 'Silver', 'Bronze'], axis = 1) ' – madoki

Powiązane problemy