如何使用pandas比较一个数据框的1个元素和其他数据框的所有元素?

我试图将子数据框 “df_child “中的每个元素与父数据框 “df_parent “中的每个元素进行比较.我试图提取1个子元素,并通过在 “similar “函数中传递它们作为参数与所有父元素进行比较,其中我使用levenshtein算法给我一个子元素与每个父元素的百分比近似的结果。

它给我以下错误。

“FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison res_values = method(rvalues)”

以下是我的代码。

import textdistance
from difflib import SequenceMatcher
import pandas as pd
import itertools

def similar(a,b):
    try:
        result_levenshtein=textdistance.levenshtein.normalized_similarity(a,b)
        print (result_levenshtein)
    except Exception:
        print (Exception)

try:
    df_child = pd.read_excel('parent_child_relationship.xlsx', sheet_name='child')
    df_parent= pd.read_excel('parent_child_relationship.xlsx', sheet_name='parent')
    print (len(df_child.index))
    print (len(df_parent.index))

    for parent in range(len(df_parent.index)):
        parent = df_parent.iloc[:,0]
        #print (parent)
        for child in range(len(df_child.index)):
        child = df_child.iloc[:0]
        #print (child)
        similar(child,parent)

except Exception:
    print (Exception)

解决方案:

一个小小的修改 for 循环。请检查它是否工作 –

for parent in range(len(df_parent.index)):
    par = df_parent.iloc[parent:parent+1,0]
    for child in range(len(df_child.index)):
        chi = df_child.iloc[child:child+1, 0] #have assumed here that you want column 0
        similar(chi,par)

给TA打赏
共{{data.count}}人
人已打赏
未分类

部署后无法获取Azure keyvault秘密

2022-9-8 16:08:24

未分类

如何从Nodejs-Express(MongoDB)存储、访问和检索图片文件到Angular8 FrontEnd。

2022-9-8 16:08:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索