Python 对数据框中的列值求和
在数据帧中,是否可以折叠具有相同值的列,并将另一列中的值相加 代码Python 对数据框中的列值求和,python,python-2.7,pandas,Python,Python 2.7,Pandas,在数据帧中,是否可以折叠具有相同值的列,并将另一列中的值相加 代码 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"
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
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
在上面的示例中,前两行具有相同的得分
和类型
,因此应将这些行合并在一起,并将它们的得分相加
所需输出
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
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
这是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