2014-08-27 27 views
6

Câu hỏi mới bắt đầu. Điều này có vẻ như nó phải là một hoạt động đơn giản, nhưng tôi không thể tìm ra nó từ việc đọc tài liệu.Nhóm gấu trúc theo và tổng hai cột

Tôi có một df với cấu trúc này:

|integer_id|int_field_1|int_field_2| 

Cột integer_id là không duy nhất, vì vậy tôi muốn nhóm df bởi integer_id và tổng hợp hai lĩnh vực.

SQL tương đương là:

SELECT integer_id, SUM(int_field_1), SUM(int_field_2) FROM tbl 
GROUP BY integer_id 

Mọi góp ý về cách đơn giản nhất để làm điều này?

EDIT:. Bao gồm đầu vào/đầu ra

Input: 
integer_id int_field_1 int_field_2 
2656  36   36 
2656  36   36 
9702  2   2 
9702  1   1 

Ouput sử dụng df.groupby ('integer_id') sum():

integer_id int_field_1 int_field_2 
2656  72   72 
9702  3   3 
+0

làm 'df.groupby ('integer_id'). Sum() 'cung cấp cho bạn những gì bạn muốn? – EdChum

+1

Ah vâng có vẻ như hầu hết đều hoạt động. Hàng đầu tiên của đầu ra bao gồm 'integer_id' với hai trường trống mặc dù tôi không hiểu. – acpigeon

+0

Đó có lẽ chỉ là biểu diễn của khung dữ liệu, vì 'integer_id' được đặt làm chỉ mục. Bạn có thể cung cấp 'set_index = False' trong' groupby' nếu bạn không muốn 'integer_id' làm chỉ mục – joris

Trả lời

10

Bạn chỉ cần gọi sum trên một đối tượng groupby:

df.groupby('integer_id').sum() 

Xem docs để biết thêm ví dụ

+1

dịch vụ chăm sóc người điều hành để giải thích? – EdChum

1

Bạn có thể làm điều đó

data.groupby(by=['account_ID'])['purchases'].sum() 
Các vấn đề liên quan