2013-11-24 74 views
15

Trong một khung dữ liệu gấu trúc, có thể thu gọn các cột có giá trị giống nhau và tổng hợp các giá trị trong một cột khác không?Tổng hợp các giá trị cột trong Pandas DataFrame

data = {"score":{"0":9.397,"1":9.397,"2":9.397995,"3":9.397996,"4":9.3999},"type":{"0":"advanced","1":"advanced","2":"advanced","3":"newbie","4":"expert"},"count":{"0":394.18930604,"1":143.14226729,"2":9.64172783,"3":0.1,"4":19.65413734}} 
df = pd.DataFrame(data) 
df 

Output

 count  score  type 
0 394.189306 9.397000 advanced 
1 143.142267 9.397000 advanced 
2 9.641728 9.397995 advanced 
3 0.100000 9.397996 newbie 
4 19.654137 9.399900 expert 

Trong ví dụ trên, hai hàng đầu tiên có cùng scoretype, do đó, những hàng nên được sáp nhập lại với nhau và điểm số của họ thêm vào.

mong muốn Output

 count  score  type 
0 537.331573 9.397000 advanced 
1 9.641728 9.397995 advanced 
2 0.100000 9.397996 newbie 
3 19.654137 9.399900 expert 

Trả lời

23

Đây là một công việc cho groupby:

>>> df.groupby(["score", "type"]).sum() 
         count 
score type     
9.397000 advanced 537.331573 
9.397995 advanced 9.641728 
9.397996 newbie  0.100000 
9.399900 expert  19.6541374 
>>> df.groupby(["score", "type"], as_index=False).sum() 
     score  type  count 
0 9.397000 advanced 537.331573 
1 9.397995 advanced 9.641728 
2 9.397996 newbie 0.100000 
3 9.399900 expert 19.654137 
Các vấn đề liên quan