Я хочу выбрать строки / группы, которые с 2000 и 2001 годами должны иметь 2000 и 2001 годы в наборе данных, как показано ниже:
ID,year,age
810006862,2000,49
810006862,2001,
810006862,2002,
810006862,2003,52
810023112,2000,27
810023112,2004,28
810023112,2005,29
810023112,2006,30
810033622,2000,24
810033622,2001,25
Я пробовал следующие коды, нооба вернулись с пустым фреймом данных.
df1411 = df.groupby('ID').filter(lambda x: set(x['year']) == {'2000', '2001'})
df[df.groupby('ID')['year'].transform(lambda x: set(x.values.tolist()) == {'2000','2001'})]
Эти два кода ниже выбирают одну дополнительную группу, у которой есть только 2000 год. Я хотел бы иметь группу с 2000 и 2001 годами.
df[df['year'].isin({2000, 2001})]
df.loc[df.year.isin(['2000', '2001'])]
Результат Iхочу что-то вроде этого:
ID,year,age
810006862,2000,49
810006862,2001,
810033622,2000,24
810033622,2001,25