如何根据另一列中的值进行分组和求和

时间:2018-06-05 15:58:44

标签: pandas-groupby

我有一个数据框,例如:

Date           Amount.       Type 
1/2/2011.   200.             S
 1/2/2011.    300.             R
 1/3/2012.     400.           S
  1/3/2012.    300.           S

我需要:

Date.         Result.     Flow
1/2/2011    S-R.       -100
 1/3/2011.   S+S.       700

现在R出现的地方,我需要从该日期和S ovcjes的任何地方减去数量,我需要添加。

我试过了:df.groupby([df.Date.values,df.Type])[“Amount”])

但这并没有给我我想要的东西。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

将所有R转换为负值:

df['amount'] = [x[1]['amount'] if x[1]['type'] == 'S' else x[1]['amount'] * -1 for x in df.iterrows()]

分组日期':

df2 = df.groupby(df['date']).sum()

结果:

            amount
date              
2011-01-02    -100
2011-01-03     700

如果您想添加列或更改名称,可以从那里开始。