2013-11-24 42 views
15

W pandas DataFrame, czy można zwijać kolumny, które mają identyczne wartości, i podsumować wartości w innej kolumnie?Podsumuj wartości kolumn w Pandas DataFrame

Kod

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 

Wyjście

 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 

W powyższym przykładzie, pierwsze dwa wiersze mają taką samą score i type, więc te wiersze powinny zostać połączone ze sobą, a ich wyniki sumowane.

Pożądany Wyjście

 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 

Odpowiedz

23

To jest zadanie dla 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 
Powiązane problemy