2015-11-06 58 views
0

我有(項目,特徵,級)如何將列值對齊到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 

,我必須放入一個新的數據幀都總和與(項目,sumGrade):

item sumGrade 
1 1.1 
2 0.6 
... 

我怎麼能做到這一點,而無需使用GROUPBY和應用功能?因爲我需要一個很好的計算性能。

謝謝

+0

正常操作這裏是'itemby'上'item'並且在'grade'列上調用'sum'不需要在這裏調用'apply' – EdChum

回答

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 
相關問題