Я создал специальную функцию, которая, учитывая фрейм данных, проверяет, есть ли дубликаты в val, и если размер val меньше 10, в интересующей категории
df = pd.DataFrame({'user':['user 1','user 1','user 1','user 2','user 2','user 2'],
'category':['c1','c2','c3','c1','c2','c3'],
'val':[3,4,8,5,9,10]})
def custom_func(df, category):
partial_df = df[df.category==category].copy()
if len(partial_df.val)<10 and partial_df.val.duplicated().sum()>0:
return True
else:
return False
custom_func(df, 'c1')