按功能划分的熊猫数据框

时间:2021-03-30 11:59:12

标签: python pandas partitioning

我想通过用户定义的函数对数据帧进行分区。更准确地说,说数据框

df=pd.DataFrame([['Test'],['Test'],['Teest'],['qioejdoqw'],['T.e.st']])

我想要类似的东西

df.groupby(equivalencerelation)

其中等价关系是一个比较两个字符串并检查的函数,例如为相似。例如通过

from difflib import SequenceMatcher
def equivalencerelation(s1,s2):
    return SequenceMatcher(None,str(s1).lower(),str(s2).lower()).ratio()>=0.8

因此,如果两行相似度高达 0.8,则认为它们相等。我通过列表上的递归进行了尝试(将 df 转换为列表)。这有效,但相对较慢。我也可以直接通过数据帧中的递归来完成(我考虑添加一个列“已访问”,我在其中标记我检查过的行,然后使用尚未访问的第一个列,对于所有尚未访问的,比较这个特定的行,然后将它们放入同一分区,如果函数为 True 并将它们标记为已访问。然后再次递归执行此操作,直到所有已访问。

但我想也许在大熊猫中有一种直接的方法可以做到这一点?

0 个答案:

没有答案