我有一个带有(项目,功能,等级)的python pandas DataFrame
item feature grade
1 1 0.8
1 2 0.3
2 1 0.6
...
我必须对每个相同项目的所有成绩值求和,例如
for item 1 sum of grade is 1.1
我必须将所有总和放在一个新的DataFrame中(item,sumGrade):
item sumGrade
1 1.1
2 0.6
...
如何在不使用groupby和apply函数的情况下执行此操作?因为我需要一个良好的计算性能。
谢谢
答案 0 :(得分:1)
您可以groupby
点击'项目'列,然后在'等级'上拨打sum
列,另外致电reset_index
以恢复'项目'专栏回来:
In [10]:
df.groupby(['item'])['grade'].sum().reset_index()
Out[10]:
item grade
0 1 1.1
1 2 0.6
不确定您为什么不想分组,但您也可以将索引设置为' item'和索引级别的sum
:
In [11]:
df.set_index('item')['grade'].sum(level=0)
Out[11]:
item
1 1.1
2 0.6
Name: grade, dtype: float64