繁体   English   中英

地址匹配两列python

[英]Address Matching two columns python

考虑我在数据框中有两列:

第 1 列:

第 1 行:堆栈溢出

第 2 行:Python

第 2 栏:

第 1 行:['堆栈','堆栈溢出']

第 2 行:['Python 编程','Python Snake']

我想按行进行精确匹配(可选),并相应地返回一个标志。

输出:

[0] 匹配

[1] 不匹配

尝试过:我在循环中尝试过“in”函数,但这也给出了部分匹配作为“匹配”。

代码:

for (item, Value),(item1, Value1) in zip(df1['Column1'].iteritems(),df2['Column2'].iteritems()):

    if str(Value).strip() in str(Value1).strip():
       found.append(1)

我认为你需要:

def isMatch(row):
    for i in row['b']:
        if i == row['a']:
            return 'Match'
    return 'Not Match'

df['c'] = df.apply(lambda x: isMatch(x), axis=1)
print(df)

好的,我会尝试回答这个问题,所以如果其他人有类似的问题。 基本上,您希望检查col1值是否在col2 (列表)中。 您可以轻松使用isin 应用 numpy where函数,可以创建一个标志。

这是一个模型。

df = pd.DataFrame({
    'col1': ['Stack Overflow', 'Python'], 
    'col2': [ ['Stack', 'Stack Overflow'],  ['Python Programming', 'Python Snake']]})


df['Flag'] =df.apply(lambda x: x['col1'] in x['col2'], axis=1)
df

结果如下:

    col1    col2    Flag
0   Stack Overflow  [Stack, Stack Overflow] True
1   Python  [Python Programming, Python Snake]  False

让我知道它是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM