如何创建或更新列

时间:2016-02-29 12:55:46

标签: python numpy pandas cumsum

我有一个数据框x

item   S  sale
A1     1   5
A1     2   10
A2     1   3
A2     2   7
A2     3   8

我希望结果完全符合这种格式

item   S  sale  cumsum
A1     1   5      5
A1     2   10    15 
A2     1   3      3
A2     2   7      10
A2     3   8      18

我创建了一个包含item和key值的字典,并使用for循环

x_dict=df.groupby(['item']).apply(lambda g: g.S.values).to_dict()

for i , j in x_dict.iteritems():

但我无法访问其给定错误的值:

  

(意外的EOF文件)

1 个答案:

答案 0 :(得分:1)

您可以尝试groupbycumsum

df['cumsum'] =  df.groupby('item')['sale'].cumsum()
print df
  item  S  sale  cumsum
0   A1  1     5       5
1   A1  2    10      15
2   A2  1     3       3
3   A2  2     7      10
4   A2  3     8      18