我正在尝试将子数据帧"df_child“的每个元素与父数据帧"df_parent”的每个元素进行比较。我试图提取一个子元素,并通过将它们作为参数传递到"similar“函数中来与所有父元素进行比较,其中我使用levenshtein算法来给出一个子元素与每个父元素的百分比近似值。
它给了我以下错误:
FutureWarning:元素比较失败;返回标量,但将来将执行元素比较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)
发布于 2020-04-22 13:21:38
对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)
发布于 2020-04-24 05:41:17
这是一个有效的循环:
for i in df_parent.index:
par = df_parent['Column1'][i]#Column1 is the one we added above
#print("parent "+par)
for j in df_child.index:
chi = df_child['Column1'][j]
#print("child "+chi)
similar(chi,par)
https://stackoverflow.com/questions/61363705
复制