如果条件匹配两个“for 循环”中的两个字符串

Posted

技术标签:

【中文标题】如果条件匹配两个“for 循环”中的两个字符串【英文标题】:If condition to match two strings within two 'for loops' 【发布时间】:2020-08-18 04:57:41 【问题描述】:

请检查下面的代码,我正在尝试遍历两个数据框并检查两个数据框的国家名称是否相同。但是我一次又一次地收到 Na/NaN 值错误,我无法理解为什么?两个数据集都没有 Na/NaN 值,但尽管如此,我仍然收到此错误。请帮忙!在 IF 语句中抛出错误。 Country_name 是一个字符串,例如美国、印度等。

for reviewer_id, row in data.iterrows():
    for reviewer_id, row1 in data1.iterrows():
        if data1['country_name'][row1] == data['country_name'][row]:
            similar=textdistance.Levenshtein(row.Fname_Username,row1.Fname_Username)
            data2['key1']= str(data['reviewer_id'])+'_'+str(data1['reviewer_id'])
            data2['Fname_Username']= str(data['Fname_Username'])+'_'+str(data1['Fname_Username'])
            data2['Similarity1']=similar

ValueError: 无法使用包含 NA / NaN 值的向量进行索引

【问题讨论】:

【参考方案1】:

仔细查看iterrows() 的工作原理(例如here)。rowrow1 已经是您要访问的行,您只需获取其中的列,例如

if row1['country_name'] == row['country_name']:

【讨论】:

以上是关于如果条件匹配两个“for 循环”中的两个字符串的主要内容,如果未能解决你的问题,请参考以下文章

关于基于硒中的for循环中的匹配条件执行一些动作

比较两个数组以查找匹配值的 for 循环

JS中如何判断一个字符串是一个字符串数组中的一个元素!!?

如何在 for 循环中包含大量指令 If? [复制]

想找一个解决两个字符串匹配程度的算法。

shell编程之字符串比较和for循环