我有一个数据框(df)并尝试将数据附加到特定行
Index Fruit Rank
0 banana 1
1 apple 2
2 mango 3
3 Melon 4
目标是将等级1的果实与每个等级进行比较,然后追加该值。 我使用difflib.SequenceMatcher进行比较。现在我能够附加到df但我最终会为每一行添加相同的值。我在循环中挣扎并追加。 任何指针都会非常感激。
以下是我的一些代码:
new_entry = df[(df.Rank ==1)]
new_fruit = new_entry['Fruit']
prev_entry = df[(df.Rank ==2)]
prev_fruit = prev_entry['Fruit']
similarity_score = difflib.SequenceMatcher(None, str(new_fruit).lower(), str(prev_fruit).lower()).ratio()
df['similarity_score'] = similarity_score
结果是这样的:
Index Fruit Rank similarity_score
0 banana 1 0.3
1 apple 2 0.3
2 mango 3 0.3
3 Melon 4 0.3
期望的结果是:
Index Fruit Rank similarity_score
0 banana 1 n/a
1 apple 2 0.4
2 mango 3 0.5
3 Melon 4 0.6
感谢。
答案 0 :(得分:1)
这不会给出您想要的相似度分数顺序,但会计算{1}}与排名1值(' banana')和每行的比率,并将其添加为列。
SequenceMatcher