Я хочу объединить два фрейма данных путем частичного совпадения строк. Мне нужно объединить два фрейма данных. Первый df1 состоит из 130 000 строк, например:
id text xc1 xc2
1 adidas men shoes 52465 220
2 vakko men suits 49220 224
3 burberry men shirt 78248 289
4 prada women shoes 45780 789
5 lcwaikiki men sunglasses 34788 745
а второй df2 состоит из 8000 строк, например:
id keyword abc1 abc2
1 men shoes 1000 11
2 men suits 2000 12
3 men shirt 3000 13
4 women socks 4000 14
5 men sunglasses 5000 15
После соответствия между ключевым словом и текстом результат должен выглядеть следующим образом:
id text xc1 xc2 keyword abc1 abc2
1 adidas men shoes 52465 220 men shoes 1000 11
2 vakko men suits 49220 224 men suits 2000 12
3 burberry men shirt 78248 289 men shirt 3000 13
4 lcwaikiki men sunglasses 34788 745 men sunglasses 5000 15
Возможно ли, что частичное совпадение строки находится в середине текста в df1? например vakko men suits blue? — person muratmert41 schedule 23.05.2021
@SeaBean Да. Когда я исследую набор данных, есть такие примеры. — person muratmert41 schedule 23.05.2021
Идентификаторы в том же порядке? — person muratmert41 schedule 23.05.2021
@AnuragDabas, к сожалению, нет. номера строк в обоих фреймах данных различаются — person muratmert41 schedule 23.05.2021
stackoverflow.com/a/60908516/14066512 — person muratmert41 schedule 23.05.2021
Еще одна сложность: men suits в df2 не должен совпадать с abc women suits в df1, верно? — person muratmert41 schedule 23.05.2021
@SeaBean, да, я бы не хотел, чтобы это совпадало. — person muratmert41 schedule 24.05.2021
В таком случае вы не можете использовать большинство похожих ответов в StackOverflows, которые используют простой тест подстроки, например stringA in stringB. Такой вид теста завершится неудачно с ложным совпадением men suits в keyword с women suits в text, поскольку он возвращает True для теста 'men suits' in 'women suits'. Мы должны использовать регулярное выражение с учетом границы слова, чтобы избежать ложного совпадения. — person muratmert41 schedule 24.05.2021
