2013-06-25 36 views
24

Tôi có dataframe sau:Python Pandas: Chuyển đổi dòng như tiêu đề cột

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 

Tôi muốn nó theo cách này.

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

Stack/Unstack dường như không hoạt động.

Trả lời

35

Bạn đang tìm kiếm 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 

và nếu bạn muốn sắp xếp lại các cột:

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

Điều này tạo ra một chỉ số đa cấp, mà không phải là 100% những gì bị truy nã. Loại bỏ nó bằng 'medals.reset_index (drop = False, inplace = True)' rồi theo sau bởi 'medals.reindex_axis (['Year', 'Country', 'Gold', 'Silver', 'Bronze'], trục = 1) ' – madoki

Các vấn đề liên quan