我有一个包含两个相关列的数据帧。我需要对照列A(一个名称列表)本身进行检查,如果两个(或更多)值彼此足够相似,我将对这些行的列B中的值求和。 为了检查相似性,我使用fuzzyfuzzy包,它接受两个字符串并返回一个分数。你知道吗
数据:
a b
apple 3
orang 4
aple 1
orange 10
banana 5
我想留下:
a b
apple 4
orang 14
banana 5
我试过下面这句话,但我一直得到一个关键错误
df['b']=df.apply(lambda x: df.loc[fuzz.ratio(df.a,x.a)>=70,'b'].sum(), axis=1)
我还需要删除将列b添加到另一行的所有行。你知道吗
你对如何做到这一点有什么想法吗?你知道吗
这里的某些部分最好用pandas来完成,而有些部分(例如,应用于笛卡尔积的函数)可以不用pandas来完成。你知道吗
总的来说,您可以通过以下方法来实现:
线路
创建映射
alias
,将单词从a
映射到它们的别名。你知道吗线路
通过使用
alias
的翻译对b
进行分组,然后求和。你知道吗我会映射和分组:
使用如下:
相关问题 更多 >
编程相关推荐