Используйте (group.brand == "ABC").all()
в качестве условия, когда хотите, чтобы все значения в group['brand']
равнялись "ABC"
.В противном случае в логическом контексте bool(group.brand == "ABC")
повышает
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Например,
import numpy as np
import pandas as pd
np.random.seed(2019)
N = 10
df = pd.DataFrame({'brand':np.random.choice(['ABC', 'DEF', 'GHI'], size=N),
'val':np.random.randint(4, size=N)})
result = df.groupby('brand').filter(lambda group: (len(group) >= 3)
| (group['brand'] == "ABC").all())
print(result)
приводит к
brand val
0 ABC 0
1 GHI 0
3 ABC 0
4 GHI 1
5 GHI 3
6 ABC 0
8 ABC 2
9 GHI 3