В настоящее время у меня есть df, который выглядит так:
Word Score Other
This 10 1
is 10 2
an 20 5
example 50 3
great 20 2
То, что я делаю, — это создание перестановок на основе слов, найденных в столбце Word, и суммирование общей оценки переставляемых слов. Поскольку мой набор данных довольно существенный, я хочу создавать только те перестановки, в которых оценка превышает установленную общую сумму (в данном случае 50), чтобы ограничить общее количество возможных перестановок.
Ожидаемый результат:
**Permutations** **Score**
an example 70
example great 70
This example 60
etc...
Вопрос Как добавить оценку переставленных слов и сложить ее
В моем коде этого нет
import itertools
word = exact['Word']
score = exact['Score']
perm = list(itertools.permutations(word, 3))
removal = perm[perm['Score'] >= 50]
Есть идеи?
РЕДАКТИРОВАТЬ На основе помощи Гаррета:
exact = stuff[stuff['Other'] < 6 ]
def find_perms(df, min_score):
perm = itertools.permutations(df.Word.unique(), 2)
score = df.Score.to_dict()
for p in perm:
s = sum(score[w] for w in p)
if s >= min_score:
yield p, s
df = pd.DataFrame(list(find_perms(exact, 50000)),
columns=['Permutations', 'Score'])