Сначала убедитесь, что данные отсортированы так, как вы ожидаете, с помощью:
df = df.sort_values(['uid', 'date'])
Затем получите только вторую строку каждого работника (предыдущий такой же uid
, но предыдущийне то же самое uid
) использовать:
df[(df['uid'] == df['uid'].shift()) & (df['uid'] != df['uid'].shift(2))][['uid', 'value']]