我想为groupby中的每个组选择满足diff()
条件的第一个匹配/行。
起初,我想我想在这里使用过滤器,因为我想减少groupby的结果。现在我正在尝试这个:
df_slice.groupby('SeqNum').filter(lambda x: x.A.diff() <= -1).first()
导致:
{TypeError}filter function returned a Series, but expected a scalar bool
从错误中,我得到的差异是返回一个系列,它期望一个标量,但我不知道如何改进语句来得到我想要的,这是每个小组会议的第一次出现/行差异标准。
答案 0 :(得分:0)
您可以添加drop_duplicate
df_slice[df_slice.groupby('SeqNum').apply(lambda x: (x.A.diff() <= -1)).sort_index(level=1).values].drop_duplicates('SeqNum')
答案 1 :(得分:0)
选择min(id)keep(dense_rank first order by kind)id ,val ,min(kind)kind 来自mytable 由val组; ID | VAL |类 - :| ---:| ---: 3 | 3 | 4 2 | 1337 | 1 强>