熊猫分组与多个组相同的值
我有以下数据框,我需要将其分为三组(两组,数量 = 0),同时返回每组的最小/最大周期。
period quantity
0 1 0
1 2 0
2 3 0
3 4 0
4 5 0
5 6 0
6 7 0
7 8 10
8 9 10
9 10 10
10 11 10
11 12 10
12 13 10
13 14 10
14 15 10
15 16 10
16 17 0
17 18 0
18 19 0
19 20 0
20 21 0
21 22 0
22 23 0
23 24 0
我需要的是:
quantity min max
0 0 1 7
1 10 8 16
2 0 17 24
我可以尝试什么?
回答
这是基于此答案的一种解决方案。
(
df.groupby([df["quantity"].diff().ne(0).cumsum(), df["quantity"]])["period"]
.aggregate(["min", "max"])
.droplevel(0)
.reset_index()
)
回来
quantity min max
0 0 1 7
1 10 8 16
2 0 17 24