我有一个与此类似的数据框
Date Amount Narrative
2017/01/12 50 Active356483
2017/01/12 30 Active798203
2017/01/15 70 1NB6893784
2017/01/23 80 Apple22222
2017/02/01 90 1NB6893784
2017/02/01 10 Apple3435
2017/02/02 10 Apple34532
2017/02/03 10 1NB7847573
2017/02/03 20 Apple78783783
2017/02/04 60 1NB6897383
2017/02/04 90 Apple893043
2017/02/04 100 Apple789302
我需要对具有类似叙述的行进行分组。叙述专栏将告诉您有关原始公司的更多信息,但他们也会添加参考编号。这个参考对外部消费者没有任何意义。在上面的示例中,“叙述”列上的完全匹配不会产生所需的结果。我需要将所有Active,1NB和Apple的行组合在一起。我不能简单地删除数字,因为有时它确实表示帐号。例如,一个人将拥有Apple1-78872和Apple2-674674。这些应被视为两个不同的帐户。
Narrative Date Amount
Active798203 2017/01/12 50
2017/02/12 30
1NB6897383 2017/01/15 70
2017/02/01 90
2017/03/01 10
2017/04/01 60
Apple789302 2017/01/23 80
2017/03/01 10
2017/04/01 10
2017/05/01 20
2017/06/01 90
2017/07/04 100
我在考虑进行文字百分比匹配。
from difflib import SequenceMatcher
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()