Nyx*_*nyx 16 python python-2.7 pandas
在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
Run Code Online (Sandbox Code Playgroud)
产量
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
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,前两行具有相同的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
Run Code Online (Sandbox Code Playgroud)
DSM*_*DSM 27
这是一份工作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
Run Code Online (Sandbox Code Playgroud)