具有字符条件的熊猫sum()

时间:2020-11-03 14:00:16

标签: python pandas string cumsum

我有以下数据框:

>>>variable    value
0  var1        0.25
1  var2        0.11
2  tt_var1     0.01
3  tt_var2     0.0004
4  tt_var3     0.07
5  bb_var5     0.102
6  var_3       0.45
7  bb_var74    0.23

我想使用cumsum()来对列“ 1”中的值求和,但仅适用于特定变量:我想对数据帧中所有以tt开头的变量和所有以bb开头的变量求和,所以最后我将得到以下表格:

>>>variable    value
0  var1        0.25
1  var2        0.11
2  tt          *sum of all tt **
3  bb          *sum of all bb**
4  var_3       0.45

我知道如何使用cumsum,但是我还没有找到任何方法将其指定为仅在一行中有某些共同点(例如字母bb或tt)的特定行上使用。

是否可以通过这种方式使用cumsum()?

1 个答案:

答案 0 :(得分:2)

使用groupby

grouper = df['variable'].replace({'tt_.*': 'tt', 'bb_.*': 'bb'}, regex=True)
df.groupby(grouper).sum().reset_index()

输出

  variable   value
0       bb  0.3320
1       tt  0.0804
2     var1  0.2500
3     var2  0.1100
4    var_3  0.4500