У меня есть Pandas Dataframe, содержащий столбец идентификаторов (1 и 2) и столбец списков слов. Я пытаюсь найти пересечение слов между двумя ячейками в заранее заданных положениях:
import pandas as pd
df = pd.DataFrame({'ID': ['S1','S2','S1','S2','S1','S2','S1','S2'], 'words': [['apple', 'orange'],
['apple', 'pear'],['melon', 'pineapple'],['apple', 'melon'],['melon', 'fig'],
['plum', 'fig'],['melon', 'apple'],['apple', 'pineapple']]})
Более конкретно, в приведенном выше DF я хочу сравнить слова в каждой ячейке (которую мы назовем pos: 0) со словами в предыдущей ячейке (которую мы назовем pos: -1) и сохраняем слова, которые встречаются в новом столбце (называемом «совпадениями»), в той же строке, что и ячейка в pos: 0.
Например, вторая строка содержит слова «яблоко» и «груша». «Яблоко» также встречается в предыдущем ряду, а «груша» - нет. Итак, я бы хотел, чтобы «яблоко» появилось в столбце «совпадения» во втором ряду.
Если возможно, я бы хотел установить меру «расстояния», которая позволит мне сравнивать ячейки на разных расстояниях друг от друга. Например, если предыдущая строка равна -1, то предыдущая строка будет иметь значение -2, -3, -4 и т. Д.
В настоящее время я делаю это в Пандах, но понятия не имею, если эторазумноПока у меня нет реального кода, иллюстрирующего мои усилия, потому что я не знаю, с чего начать.