在 pandas 数据框中搜索字符串列表并将每个搜索字符串添加到新列

2024-06-24

我有一个带有文本列“描述”的数据框 我有一个搜索字符串列表:

search = ['FR-001', 'FR-002, 'FR-003', 'FR-004']

我想使用搜索列表中的字符串搜索数据框。我用了:

df.loc[df['Description'].str.contains('|'.join(search), na=False)]

我得到了所需的结果,所有行都正确返回。

如何将每个成功的搜索字符串添加到新数据框列“FR”中的匹配行?

Edit

5 行描述列和预期结果列 FR

样本数据框 https://i.stack.imgur.com/GmsCJ.png


我想你需要findall http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.findall.html:

使用@AndreyF的样本数据:

search = ['FR-001', 'FR-002', 'FR-003', 'FR-004']
df['FR'] = df['Description'].str.findall('(' + '|'.join(search) + ')')
print (df)

                            Description                FR
0  AasfasfFR-001,asfasdfafsagsdg FR-002  [FR-001, FR-002]
1                 AasfasfFR-004, FR-002  [FR-004, FR-002]
2         AasfasfFR-02,asfasdfafsagsdg                 []
3  AasfasfFR-001,asfasdfafsagsdg FR-003  [FR-001, FR-003]
4  AasfasfFR-004,asfasdfafsagsdg FR-002  [FR-004, FR-002]

如果需要过滤掉空列表:

df = df[df['FR'].astype(bool)]
print (df)

                            Description                FR
0  AasfasfFR-001,asfasdfafsagsdg FR-002  [FR-001, FR-002]
1                 AasfasfFR-004, FR-002  [FR-004, FR-002]
3  AasfasfFR-001,asfasdfafsagsdg FR-003  [FR-001, FR-003]
4  AasfasfFR-004,asfasdfafsagsdg FR-002  [FR-004, FR-002]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 数据框中搜索字符串列表并将每个搜索字符串添加到新列 的相关文章

随机推荐

  • Python 在列表列表中查找值

    最近我必须找到某个列表中的某些内容 我使用了 def findPoint haystack needle haystack 1 2 3 4 5 6 7 8 9 for x in range len haystack if needle in
  • 从 SERVICE 执行 COMPONENT 方法

    我正在尝试执行一个组件method from a 服务方式 我看到了另外 2 个线程 Link1 如何从服务调用组件方法 https stackoverflow com questions 40788458 how to call comp
  • Vuetify 连接 v-select 的 item-text 中的两个字段

    有没有办法在 v select 的项目文本字段中将两个字段连接在一起 我让它适用于下拉列表值 但可见条目不显示这两个字段 问题出在这里 item text data item name data item group Code
  • MageUI.exe 删除 CompatibleFrameworks 元素

    我们使用 MageUI exe 手动创建不同版本的 ClickOnce 部署 以进行开发 测试和生产 我们改变出版商以便使程序图标出现在 开始 菜单的单独文件夹中 我们使用MageUI exe版本适用于 Windows 7 和 NET Fr
  • Blazor EditForm 从列表绑定

    我正在尝试制作一个页面来编辑客户数据 客户对象有一个电话号码 字符串 列表 因为大多数人都有固定电话和手机 我似乎找不到一种方法将其放入编辑表单中 我尝试使用 foreach 循环 但它无法绑定到此 我还尝试在循环中使用本地副本并绑定到它
  • 单击按钮时如何更改按钮的背景颜色?

    我研究了很多 发现这个 JSFiddle http jsfiddle net eYgdm 看起来像我需要的 但是 当我单击按钮时 page背景正在改变 我想要button s相反 单击时要更改颜色 div width 100 height
  • 如何在rails中使用like子句查询?

    我想在搜索关键字时获得 json 格式的数据 所以我使用 LIKE 子句并像这样查询 select from employees where fname like or mname like or lname like or usernam
  • Sql Server 复制需要实际的服务器名称才能连接到服务器

    当我想要创建新的发布或订阅时 我收到以下消息 Sql Server 复制需要实际的服务器名称才能连接到服务器 不支持通过服务器别名 IP 地址或任何其他备用名称进行连接 指定实际的服务器名称 有谁知道我应该做什么 我在以下链接中找到了解决方
  • 什么是 8BITMIME? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 什么是 8bitmime 7位和8位
  • 正则表达式中的子字符串应根据长度排序的建议背后的原因是什么?

    最长的第一个 gt gt gt p re compile supermanutd supermanu superman superm super 最短的优先 gt gt gt p re compile super superm superm
  • 如何让 Git diff 忽略版本号更改?

    有没有办法从 Git diff 中消除版本号变化噪音像这个 https github com keith Xcode app strings commit 9502c601cad31ef452c4cd6e8ece3982345fba1d 具
  • 在 C# 中对 PDF 进行 Base64 编码?

    有人可以提供一些有关如何执行此操作的说明吗 我可以对常规文本或字节数组执行此操作 但不知道如何处理 pdf 我要先将pdf填充到字节数组中吗 Use File ReadAllBytes http msdn microsoft com en
  • 在本地存储中设置变量

    目前正在设计一款游戏 思路是高分 这样当当前分数大于本地存储分数时就将其替换 localStorage setItem highScore highScore var HighScore localStorage getItem highS
  • (DatabaseError: no such table: django_session) Django 1.3 selenium 测试期间出现错误

    我正在尝试使用 django selenium 来测试我的 django1 3 应用程序 用于测试的数据库后端是sqlite3 这是我的设置文件的片段 if test in sys argv DB ENGINE django db back
  • 带有 Open vSwitch 的 LXC

    我想尝试OVS 软件Linux交换机 http openvswitch org http openvswitch org 使用我的 LXC 容器 以 Ubuntu 作为主机和来宾 所以我已经安装了它 apt get install open
  • plt.style.use('./deeplearning.mplstyle') 不起作用

    我正在尝试运行 Coursera 中机器学习专业的可选实验室 并且我坚持使用一些库和函数 我无法安装 plt style use deeplearning mplstyle 我收到错误消息 ModuleNotFoundError Trace
  • Java AES 加盐加密

    好吧 事实证明我在加密 解密方面很糟糕 我只是不明白 我怎样才能让Java加密String message1 hello world with String salt mySalt 使用AES加密 加密后我该如何解密 如果您有时间提供最基本
  • 复制两个 Excel 实例之间的范围

    我正在运行两个单独的 Excel 实例 并且尝试将数据从一个工作簿中的范围复制到另一个工作簿中 我有这个代码 Sub CopyValues Dim xlApp As Excel Application Set xlApp GetObject
  • 根据 Angular 2 中的 DOM 状态实例化嵌入组件

    常见菜单使用案例 menu menu
  • 在 pandas 数据框中搜索字符串列表并将每个搜索字符串添加到新列

    我有一个带有文本列 描述 的数据框 我有一个搜索字符串列表 search FR 001 FR 002 FR 003 FR 004 我想使用搜索列表中的字符串搜索数据框 我用了 df loc df Description str contai