2015-02-24 13 views
5

Tôi không thể tìm ra cách đặt câu hỏi này theo cách có thể tìm kiếm được, nhưng tôi cảm thấy đây là một câu hỏi đơn giản.Làm cách nào để bạn sử dụng các cột pandas.DataFrame làm chỉ mục, cột và giá trị?

Cho một chú gấu trúc đối tượng Dataframe, tôi muốn sử dụng một cột làm chỉ mục, một cột làm cột và cột thứ ba làm giá trị.

Ví dụ:

a b c 
0 1 dog 2 
1 1 cat 1 
2 1 rat 6 
3 2 cat 2 
4 3 dog 1 
5 3 cat 4 

Tôi muốn sử dụng cột 'a' như các giá trị chỉ số của tôi, cột 'b' như cột của tôi, và cột 'c' như các giá trị cho mỗi hàng/cột và điền với 0 cho các giá trị bị thiếu (nếu có thể). Ví dụ ...

dog cat rat 
1 2  1  6 
2 0  2  0 
3 1  4  0 

Đây sẽ là một 'a' bằng 'b' ma trận với 'c' là điền giá trị

+4

Âm thanh như bạn muốn [ 'pivot_table'] (http: //pandas.pydata .org/pandas-docs/dev/generated/pandas.tools.pivot.pivot_table.html). Xem [tài liệu] (http://pandas.pydata.org/pandas-docs/dev/reshaping.html) về "định dạng lại và bảng tổng hợp". – BrenBarn

+0

Bạn có thể xem "dataframe.groupby" (không hoàn toàn giống với 'pivot_table', nhưng phương pháp thú vị) và phương thức" dataframe.reindex " – heltonbiker

Trả lời

3

Đó là (gần như) chính xác như bạn cụm từ nó:

df.pivot_table(index="a", columns="b", values="c", fill_value=0) 

cho

b cat dog rat 
a    
1 1 2 6 
2 2 0 0 
3 4 1 0 

HTH

+3

Bạn cũng có thể chuyển' fill_value = 0' để điền vào các giá trị còn thiếu . –

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