在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
输出
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
在上面的示例中,前两行具有相同的score
和type
,因此应将这些行合并在一起,并将它们的分数相加。
所需输出
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
答案 0 :(得分:26)
这是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