如果我有一个Pandas 数据框,有以下几列:id,num,amount.
我希望对数据帧进行分组,以便每组中的所有行都具有相同的id和amount,并且其中每行的值num的值不超过下一行的值num的值.
对于相同的id,如果一行到下一行不具有相同的amount,或者如果两个num值之间的绝对差值大于10,则它将开始新的分组.中间有不同的id的行不会 destruct 分组.
我该如何着手做这件事呢?
我没有在不寻找匹配值的地方进行分组(就像这里我需要它接近的地方--但不匹配).我想这将需要一些定制的分组功能,但我一直难以将其组合在一起
Example dataframe:个
id | amount | num |
---|---|---|
aaa-aaa | 130 | 12 |
aaa-aaa | 130 | 39 |
bbb-bbb | 270 | 41 |
ccc-ccc | 130 | 19 |
bbb-bbb | 270 | 37 |
aaa-aaa | 130 | 42 |
aaa-aaa | 380 | 39 |
Expected Groups:个
第一组:
id | amount | num |
---|---|---|
aaa-aaa | 130 | 12 |
第二组:
id | amount | num |
---|---|---|
aaa-aaa | 130 | 39 |
aaa-aaa | 130 | 42 |
第三组:
id | amount | num |
---|---|---|
bbb-bbb | 270 | 41 |
bbb-bbb | 270 | 37 |
第四组:
id | amount | num |
---|---|---|
ccc-ccc | 130 | 19 |
第五组:
id | amount | num |
---|---|---|
aaa-aaa | 380 | 39 |