Pandas 带字符条件的 sum()

Pandas sum() with character condition

我有以下数据框:

>>>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 开头的所有变量求和我的数据框,所以最后我将得到以下 table :

>>>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()?

使用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