python pandas 如何对比两列数据的包含关系,并将结果写如表一内?

发布于 2022-09-07 12:46:16 字数 365 浏览 23 评论 0

表一add列匹配表二key_word,如果表一add包含表二的key_word,在表一第4列写入group,如果不包含则标注‘未收录’。PS:我用迭代也测过了,笛卡尔积也试过了,但是均没有达到想要的效果,拜托大神们,帮忙解决一下吧,谢谢了!下面附上我的代码您过目一下,小菜一枚,让您见笑了。
表一

表二

我尝试写的代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟雨扶苏 2022-09-14 12:46:16

最好不要使用for循环。

df1['group'] = df1['add'].apply(lambda x: df2.loc[[y in x for y in df2['key_word']],'group']).stack().reset_index(name='group')['group']

更新:
另一种方法,处理未收录的情况

def match_group(x):
    for y in df2['key_word']:
        if y in x:
            return y
    return '未收录'

df1['group'] = df1['add'].apply(match_group)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文