根据条件熊猫重复行



我正在使用pandas,我想在if条件下复制行(col_a),即:如果col_b中的值是正负1 = duplicate。或者如果col_b是<= 1可能是一个可能的解决方案,而不是+或- 1,我也会接受它。理想情况下,我希望保留"重复"的数量,例如col_c。

DF:
col_a   col_b
A000    10.16
A000    10.5
A000    10.9
A000    25.87
A000    26.5
B101    30.111
B101    8
DF_Output:
col_a   col_b   col_c
A000    10.16   3
A000    25.87   2
B101    30.111  1
B101    8       1

try this:

grouper = df['col_b'].sort_values().diff().fillna(float('inf')).gt(1).cumsum()
grouped = df.groupby(grouper, sort=False, as_index=False)
result = grouped.agg(**{'col_a': ('col_a', 'first'),
'col_b': ('col_b', 'first'),
'col_c': ('col_a', 'size')
})
print(result)
>>>
col_a   col_b  col_c
0  A000  10.160      3
1  A000  25.870      2
2  B101  30.111      1
3  B101   8.000      1

相关内容

  • 没有找到相关文章

最新更新