Во-первых, если проверить фильтрация , это работает по-другому.
Возвращает все данные в группах при условии соответствия, в противном случае все данные в группе удаляются.
Если значения являются числами с плавающей запятой, необходимо изменить &
на or
:
df_test=(df1.groupby(['Name','Mo_Year', 'Item'])
.filter(lambda x: (x['Mo_Year'] == 10.2019).any() or
(x['Mo_Year'] == 12.2019).any()))
или:
df_test=(df1.groupby(['Name','Mo_Year', 'Item'])
.filter(lambda x: (x['Mo_Year'].isin([10.2019,11.2019,12.2009]).any())
Но, возможно, groupby
не следует указывать, если необходимо выполнить фильтрацию только по условию:
df= df[df['Mo_Year'].isin([10.2019,11.2019,12.2009])]