#pandas #dataframe #pyspark
#pandas #фрейм данных #pyspark
Вопрос:
Я хочу удалить слова, присутствующие в списке col2 из DF2, из col1 из DF1. DF2 имеет только один список. DF1 содержит несколько списков, и каждый список находится в одной строке.
В выводе / результате я хочу сохранить повторяющиеся слова DF1 для каждой строки. Я попробовал array_except() , он выдает желаемый результат, но также удаляет дубликаты в каждой строке DF1, например, вместо 2 D в результате получается только 1 D. Любое другое решение?
Очень признателен!
Ответ №1:
Если DF2 содержит только один список, вероятно, это не обязательно должен быть фрейм данных, это может быть просто список. Попробуйте это:
df1 = pd.DataFrame({'col1': [['A', 'B', 'D', 'D'], ['A', 'G']]})
to_remove = ['A', 'B', 'E']
df1['col3'] = df1['col1'].apply(lambda list_: [val for val in list_ if val not in to_remove])
print(df1)
col1 col3
0 [A, B, D, D] [D, D]
1 [A, G] [G]