如何将对应于pandas DataFrame中另一列的特定值的列值相加?

时间:2015-11-06 14:26:49

标签: python pandas

我有一个带有(项目,功能,等级)的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函数的情况下执行此操作?因为我需要一个良好的计算性能。

谢谢

1 个答案:

答案 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