Python数据帧

时间:2014-06-24 22:34:03

标签: python python-2.7 pandas difflib

我有一个数据框(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

感谢。

1 个答案:

答案 0 :(得分:1)

这不会给出您想要的相似度分数顺序,但会计算{1}}与排名1值(' banana')和每行的比率,并将其添加为列。

SequenceMatcher