Предположим, у меня есть фрейм данных со столбцом first_name
(строка) и другим столбцом name_variations
(массив). Как я могу выполнить операцию столбца в массиве name_variations, чтобы я мог удалить любое значение, содержащееся в массиве, которое соответствует значению поля first_name?
Например, вот начальный фрейм данных:
data = {'first_name': ['Robert',
'Richard',
'Joseph'],
'name_variations': [np.array(['Robert', 'Rob', 'Bob']),
np.array(['Rich', 'Richard', 'Rick']),
np.array(['Joe'])],
}
df = pd.DataFrame (data, columns = ['first_name','name_variations'])
Это дает такой фрейм данных:
first_name name_variations
0 Robert [Robert, Rob, Bob]
1 Richard [Rich, Richard, Rick]
2 Joseph [Joe]
Я хотел бы преобразовать его так, чтобы Роберт и Ричард были удалены из первых двух значений name_variation (на основе столбца first_name), но третье значение остается прежним.
Желаемый результат:
first_name name_variations
0 Robert [Rob, Bob]
1 Richard [Rich, Rick]
2 Joseph [Joe]
Редактирование вопроса после правильного ответа Криса на исходный вопрос. Я должен был упомянуть в своем вопросе, что мой фрейм данных довольно большой (1 миллион строк), и я хочу увидеть, возможна ли векторизованная операция, а не с помощью apply, которая работает медленнее.