本站消息

站长简介/公众号


站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在 pandas 列中搜索多字符串

发布于2022-01-18 09:39     阅读(333)     评论(0)     点赞(1)     收藏(3)



我有一个看起来像这样的熊猫数据框:

       col1   col2
   0   1      A
   1   10     A, B
   2   20     B
   3   5      C
   4   70     A, B, C

现在我想在给定条件下搜索 col2 并相应地选择行。例如:

search_pattern = ["A"] -> Select all rows where A is present [rows 0, 1, 4]
search_pattern = ["A", "B"] -> Select all rows where A is present and B is present [rows 1, 4]
search_pattern = ["B"] -> Select all rows where B is present [rows 1, 2, 4]

    

解决方案


issubset您可以通过in拆分值并与集合进行比较Series.map

search_pattern1 = ["A"] 
search_pattern2 = ["A", "B"] 
search_pattern3 = ["B"] 

pats = [search_pattern1, search_pattern2, search_pattern3]

for pat in pats:
    df1 = df[df['col2'].str.split(', ').map(set(pat).issubset)]
    print (df1)

   col1     col2
0     1        A
1    10     A, B
4    70  A, B, C
   col1     col2
1    10     A, B
4    70  A, B, C
   col1     col2
1    10     A, B
2    20        B
4    70  A, B, C

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群
欢迎关注我的公众号:程序员总部,关注公众号回复python,免费领取 全套python视频教程,关注公众号回复充值+你的账号,免费为您充值1000积分







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1256401/593bb8e43beda644db24/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)