Первый взлом, который сработал
fruit = np.array(', Fruit', object)
df.fruits + df.fruits.str.contains('Apple') * fruit
0 Apple, Apricot, Fruit
1 Apple, Banana, Clementine, Pear, Fruit
2 Orange, Pineapple, Pear
Name: fruits, dtype: object
Более разумно
df.loc[df.fruits.str.contains('Apple'), 'fruits'] += ', Fruit'
df
id fruits
0 1 Apple, Apricot, Fruit
1 2 Apple, Banana, Clementine, Pear, Fruit
2 3 Orange, Pineapple, Pear
__
Чтобы ответить на комментарий, NA появляется там, где элементы в столбце fruits
не были строками. Это подразумевает плохие данные. Неважно, мы можем заполнить NA
Спасибо jezrael за улучшенную реализацию.
df.loc[df.fruits.str.contains('Apple', na=False), 'fruits'] += ', Fruit'
df