Как отфильтровать категории при условии наличия не менее 2-х элементов у этих категорий?

Имеется фрейм данных:

data = {'фрукт': ['арбуз','арбуз','арбуз','арбуз','груша', 'груша', 'груша', 'груша', 'вишня', 'абрикос', 'абрикос', 'абрикос', 'банан'],
'страна': ['россия','сша', np.nan, 'россия', np.nan, np.nan,'канада', 'франция', 'португалия', 'испания', np.nan, np.nan, 'перу'],
'вид_фр': ['1','2','3','10', '5', '7', '5', '6', '10', '5', '5', '7', '7']
}
dates = pd.DataFrame(data, columns = ['фрукт','страна', 'вид_фр'])

введите сюда описание изображения

Нужно оставить только те фрукты, у которых указаны минимум две страны, NaN страной не считается.

Как можно это сделать?

Ожидаемый результат:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: MaxU
res = df.groupby("фрукт").filter(lambda x: len(x.dropna(subset=["страна"])) > 1)

результат:

In [56]: res
Out[56]: 
   фрукт   страна вид_фр
0  арбуз   россия      1
1  арбуз      сша      2
2  арбуз      NaN      3
3  арбуз   россия     10
4  груша      NaN      5
5  груша      NaN      7
6  груша   канада      5
7  груша  франция      6
→ Ссылка