Ami*_*pta 2 python dataframe python-3.x pandas
我有一个这样的数据框
id power flag
0 20 0
1 25 0
2 26 1
3 30 1
4 18 0
5 30 0
6 19 0
7 21 1
8 23 0
Run Code Online (Sandbox Code Playgroud)
我正在尝试获得功率列的平均值/总和,输出应如下所示
0 45 (20 +25)
1 56 (26 + 30)
2 67 (18 +30 +19)
3 21 (21)
4 23 (23)
Run Code Online (Sandbox Code Playgroud)
另外,如果标志不是二进制的怎么办?
有人可以帮我这些吗?谢谢
IIUC,使用来自布尔值的累积和diff.ne(0)作为分组器,并且sum
df.groupby(df.flag.diff().ne(0).cumsum()).power.sum()
Run Code Online (Sandbox Code Playgroud)
flag
1 45
2 56
3 67
4 21
5 23
Name: power, dtype: int64
Run Code Online (Sandbox Code Playgroud)