У меня есть фрейм данных df1
, который содержит строки токенизированных строк:
df1 = pd.DataFrame(data = {'tokens' : [['auditioned', 'lead', 'role', 'play',
'play'], ['kittens', 'adopted', 'family'], ['peanut', 'butter', 'jelly',
'sandwiches', 'favorite'], ['committee', 'decorated', 'gym'], ['surprise',
'party', 'best', 'friends']]})
У меня также есть фрейм данных df2
, который содержит строки из одного слова, а также оценку, относящуюся к каждому слову:
df2 = pd.DataFrame(data = {'word' : ['adopted', 'auditioned',
'favorite', 'gym', 'play', 'sandwiches'], 'score' : [1, 2, 3, 4, 5,
6]})
Каков наилучший способ использования df2
в качестве своего рода «таблицы поиска», которую я также могу использовать для выполнения вычислений?
Для каждой строки в df1
мне нужно проверить, существуют ли какие-либо слова в df2
. Если это так, подсчитайте количество найденных слов и сохраните результат в серии под названием word_count
(если определенное слово встречается в df1
более одного раза, считайте каждое вхождение). Кроме того, когда слово в df1
существует в df2
, суммируйте оценку этого слова с любыми другими словами, найденными в серии под названием total score
. Окончательный результат должен выглядеть как df3
:
df3 = pd.DataFrame(data = {'tokens' : [['auditioned', 'lead', 'role', 'play', 'play'], ['kittens', 'adopted', 'family'], ['peanut', 'butter', 'jelly', 'sandwiches', 'favorite'], ['committee', 'decorated', 'gym'], ['surprise', 'party', 'best', 'friends']], 'word_count' : [3, 1, 2, 1, 0], 'total_score' : [12, 1, 9, 4, None]})