Pandas:计算列中所有匹配模式的出现次数

2023-12-02

假设我有一个数据框

df = pd.DataFrame({
    'column_1': ['ABC DEF', 'JKL', 'GHI  ABC', 'ABC ABC', 'DEF GHI', 'DEF', 'DEF DEF', 'ABC GHI DEF ABC'],
    'column_2': [9, 2, 3, 4, 6, 2, 7, 1 ]
})
df
          column_1  column_2
0          ABC DEF         9
1         GHI  ABC         3
2          ABC ABC         4
3          DEF GHI         6
4              DEF         2
5          DEF DEF         7
6  ABC GHI DEF ABC         1

我想计算每个正则表达式模式组出现在列中的次数。

为简单起见,假设模式是单词ABC and DEF然后我需要计算所有行中的数量。

预期输出:

          column_1  column_2    Group1_count   Group2_count
0          ABC DEF         9         1              1
1              JKL         9         0              0
2         GHI  ABC         3         1              0
3          ABC ABC         4         2              0
4          DEF GHI         6         0              1
5              DEF         2         0              1
6          DEF DEF         7         0              2
7  ABC GHI DEF ABC         1         2              1

这就是我尝试过的方法,我无法弄清楚如何继续获取计数值。

df['column_1'].str.extractall('(ABC)|(DEF)').groupby(level=0).first()

      0     1
0   ABC   DEF
2   ABC  None
3   ABC  None
4  None   DEF
5  None   DEF
6  None   DEF
7   ABC   DEF

对于这个问题,矢量解决方案/单线方法将不胜感激。 另请注意,在这个例子中我有ABC and DEF为了简单起见,但它也可能是一个复杂的正则表达式模式。


如果将以下结果相加,您可以通过您的方法获得所需的结果notna代替first,然后与原来的连接回来df


df.join(df['column_1'].str.extractall('(ABC)|(DEF)').notna().groupby(level=0).sum(), how='left').fillna(0)

Output

          column_1  column_2    0    1
0          ABC DEF         9  1.0  1.0
1              JKL         2  0.0  0.0
2         GHI  ABC         3  1.0  0.0
3          ABC ABC         4  2.0  0.0
4          DEF GHI         6  0.0  1.0
5              DEF         2  0.0  1.0
6          DEF DEF         7  0.0  2.0
7  ABC GHI DEF ABC         1  2.0  1.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:计算列中所有匹配模式的出现次数 的相关文章

  • Python 正则表达式从文本中提取域

    我有以下正则表达式 r a zA Z0 9 a zA Z0 9 61 a zA Z0 9 a zA Z 2 6 当我将其应用于文本字符串时 比方说 这是 www website1 com 这是 website2 com 我得到 www we
  • 如何从 Windows 7 PC 上完全卸载 Python 2.7

    从这里安装了Python 2 7 https www python org downloads release python 279 https www python org downloads release python 279 然后我
  • 绘制对数轴

    我想使用 matplotlib 绘制一张带有一个对数轴的图 我一直在阅读文档 但无法弄清楚语法 我知道这可能很简单 scale linear 在情节争论中 但我似乎无法正确理解 示例程序 import pylab import matplo
  • 以编程方式结束/退出粘合作业

    我正在使用 Glue 书签来处理数据 我的工作是每天安排的 但也可以 手动 启动 由于我使用书签 有时胶水作业可以在没有新数据要处理的情况下启动 然后读取的数据帧为空 在这种情况下 我想好好地结束我的工作 因为它没有什么关系 我试过 if
  • 如何使用 django Rest 框架保存多对多字段对象

    我有博客 发布 标签三个模型 在博客模型中 我将字段 postedin 作为发布模型的外键 将 标签 作为标签模型的许多字段 模型 py class Posted models Model name models CharField Pos
  • 在Python中整齐地绘制PMF

    有没有一个库可以帮助我在 python 中整齐地绘制样本的概率质量函数 如下所示 通过matplotlib pyplot的stem模块 matplotlib pyplot stem args kwargs from matplotlib p
  • seaborn 箱线图的子图

    我有一个像这样的数据框 import seaborn as sns import pandas as pd pylab inline df pd DataFrame a one one two two one two one one one
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • 如何使用Peewee查询多个相似的数据库?

    我遇到了使用 Peewee 查询多个数据库的问题 我有 2 个现有的 mysql 数据库 让我们将它们命名为 A 和 B 结构相似 因为它是两个 Bugzilla 数据库 我使用 Pwiz 生成模型 modelsA py 和 modelsB
  • 如何在 Django 中像应用程序一样从配置中注册 Flask 蓝图?

    如何从我的配置中注册 Flask 蓝图 就像 Django 中的应用程序一样 我想在配置文件中定义蓝图 它将自动注册 config py BLUEPRINTS news files 实际上我一直在一个暂定名为的项目中勾勒出类似的东西臀部口袋
  • Python3 - 如何将字符串转换为十六进制

    我正在尝试将字符串逐个字符转换为十六进制 但我无法在Python3中弄清楚它 在较旧的 python 版本中 我的以下内容有效 test This is a test for c in range 0 len test print 0x s
  • 将具有多个时区的 pandas 列转换为单个时区

    Problem 我在 pandas DataFrame 中有一个列 其中包含带有时区的时间戳 此列中有两个不同的时区 我需要确保只有一个 这是该列末尾的输出 260003 2019 05 21 12 00 00 06 00 260004 2
  • 如何检查discord.py中的所有者

    我试图让这个命令只有所有者才能运行它 是否有办法检查服务器的最高角色或创建者 我尝试了 commands is owner 但这仅检查某人是否是机器人的所有者 Guild owner https discordpy readthedocs
  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • 如果任何单元测试失败,如何使 Python 的覆盖率工具失败?

    我想使用 shell 脚本来确保我的单元测试通过and我的代码有足够的测试覆盖率 我只想运行我的测试代码once 我希望我可以通过coverage https coverage readthedocs io 工具和单次运行的工具 如果一项或
  • 获取列的 [0, x] 元素的最小值

    我需要计算一列 其中值是对其他列进行矢量化运算的结果 df new col df col1 min 0 df col2 然而 事实证明我不能像上面的语法一样使用 min 那么 获得 pandas 列的零和给定值之间的最小值的正确方法是什么
  • 内置模块位于哪里?

    我尝试查找列出的所有目录sys path但我找不到任何builtins py文件 那么它在哪里呢 从字面上看 该模块内置于 python 解释器中 gt gt gt import builtins gt gt gt builtins
  • 如何使用 PySpark 预处理图像?

    我有一个项目 需要为 1 设置大数据架构 AWS S3 SageMaker 的概念验证使用 PySpark 预处理图像 2 执行 PCA and 3 训练一些机器或深度学习模型 我的问题是了解如何使用 PySpark 操作图像数据 但无法在
  • Pandas:数据帧累积和,如果其他列为假则重置[重复]

    这个问题在这里已经有答案了 我有一个包含 2 列的数据框 这里的目标很简单 如果行列设置为 False 则重置 df cumsum df value condition 0 1 1 1 2 1 2 3 1 3 4 0 4 5 1 想要的结果
  • 我可以以某种方式“编译”一个Python脚本以在没有安装Python的PC上运行吗?

    所以我有一个Python脚本 myscript py 我是这样执行的 python D myscript py 但是 我必须安装 Python 并将其包含在PATH使其工作的环境变量 是否有可能以某种方式将 Python 可执行文件与 Py

随机推荐

  • 从最后一行开始搜索 mysql 表

    所以 我知道关系数据库上不存在 最后一行 这样的东西 但我找不到更好的词来解释我想要做什么 我有一个如下所示的表 其中id is an AUTO INCREMENT场和time是当前的 Unix 时间戳 请注意 我可以为不同的行使用相同的时
  • Python 生成器表达式括号奇怪

    我想确定列表是否包含某个字符串 因此我使用生成器表达式 如下所示 g s for s in myList if s myString any g 当然我想内联它 所以我这样做 any s for s in myList if s myStr
  • Swift 上的常见 Equatable 类

    我需要容器Any Equatable中的项目NOT Generic类 例如故事板中初始的 UI 类 我需要这样 var items Equatable 但它不起作用 Equatable need Generic 不存在共性的问题Equata
  • Sharepoint 2013:通过 REST API 确保用户

    我正在尝试通过 REST API 自动确保某些用户 我的 REST 通话 ajax url blablabla api web ensureuser type POST data logonName i 3A0 23 w 7Cdomain
  • 从 WCF 服务公开枚举的 DescriptionAttribute

    如何使用 WCF 将服务中的枚举值中的描述属性暴露给客户端或 Web 引用 或者 如何使用 WCF 向客户端公开带有描述属性的枚举 虽然公开描述属性不公开 但客户端中仅公开枚举值 我想要枚举中描述属性的值 您不能强制执行此操作 mex WD
  • 如何在没有类的情况下生成对象的新实例?

    问题 如何从该类的实例生成该类的新实例 我发现了什么 考虑下一个类及其实例 Create a new class var Foo function Foo console log New instance of FOO Foo protot
  • 我可以隐藏控制器并查看名称 cake php 2 吗?

    我正在使用 cake php 由于某种原因我想从 url 中隐藏控制器和操作名称 当前网址我们喜欢 http 192 168 1 31 home this is test 其中 home 是控制器名称 this is test是动态的 sl
  • 进程卡在退出处,显示为僵尸但无法收获

    我有一个由其父级监控的进程 孩子遇到了一个错误 导致它调用abort 该进程不会篡改中止进程 因此它应该按预期进行 转储核心 终止 父级应该检测子级的终止并触发一系列事件来响应失败 子进程是多线程且复杂的 这是我看到的ps F UID PI
  • 查询失败错误:无法通过前缀查询视图。匹配视图的部分列表是

    我正在尝试查询具有多个表和等效视图的数据集 我试图使用 table suffix 仅查询表 但它返回错误 查询失败错误 无法通过前缀查询视图 匹配视图的部分列表 我无法从数据集中删除视图 有没有办法只查询表而忽略视图 SELECT COUN
  • 为什么 ref 和 out 不足以消除 C# 中重载的歧义?

    例如 为什么这个方法Max ref int x ref int y 不被认为是过载Max int x int y 为什么与相同out 这个问题预设了一个错误的前提 Max int x int y Max ref int x ref int
  • CreateProcess() C++ 文件未找到

    我正在尝试使用CreateProcess启动一个子进程 但是我不断得到error 2 根据文档 该文件未找到 我的代码如下所示 if CreateProcess LPCTSTR test exe NULL NULL NULL FALSE 0
  • 如果单词至少包含 N 次,则匹配正则表达式

    尝试创建 SpamAssassin 自定义规则 如果电子邮件正文中包含短语 SEO 四次或更多次 则该规则会匹配 为什么像这样的简单模式不匹配 true SEO 4 m 我想我明白了 您不需要 m 修饰符 因为您不使用 或 您需要 s 修饰
  • PyQT4 和 QPixmap:加载大小为零的图像?

    我对 PyQt4 感到困惑 我在python2 6上尝试了以下步骤 In 1 from PyQt4 import QtGui In 2 import sys In 3 app QtGui QApplication sys argv In 4
  • 重写 onMeasure 时,自定义 LinearLayout 的膨胀子项不会显示

    我想展示一个MyCustomLinearLayout这延伸了LinearLayout 我正在充气MyCustomLinearLayout与android layout height match parent 属性 我想要的是展示一个Imag
  • 从文件中随机选择行

    我有一堆文件 每个文件都有 5 行标题 在文件的其余部分中 一对行形成一个条目 我需要从这些文件中随机选择条目 我如何选择随机文件和随机条目 一对行 不包括标题 如果文件足够小 请将行对读入内存并从该数据结构中随机选择 如果文件太大 Eug
  • PHP - 返回分隔符后的所有内容

    有similar 问题在SO中 但我找不到任何完全像这样的 我需要删除直到 并包括 特定分隔符的所有内容 例如 给定字符串File MyFile jpg 我需要删除所有内容 这样我就只剩下MyFile jpg 提前致谢 使用此 preg r
  • 从 IBDesignable 中的自定义控件的框架加载代码

    我已经在 OS X 应用程序中实现了一个运行良好的自定义控件 当绘制控件时 它使用来自非系统框架的代码 控件是用swift编写的 框架是用Objective C编写的 该框架不是与具有自定义控件的应用程序构建在同一项目或工作区中 我已将框架
  • 多行注释解决方法?

    我 某种程度上 已经知道这个问题的答案 但我认为这是 R 用户列表中经常被问到的问题 应该有一个可靠的好答案 据我所知 R 中没有多行注释功能 那么 有人有什么好的解决方法吗 虽然 R 中的相当多的工作通常涉及交互式会话 这让人怀疑是否需要
  • 按列值计算百分比

    我有以下有关瑞士注册车辆的数据框 Fuel Year Region Count Gasoline 2013 GE 169600 Diesel 2013 GE 46790 Hybrid 2013 GE 2268 Electric 2013 G
  • Pandas:计算列中所有匹配模式的出现次数

    假设我有一个数据框 df pd DataFrame column 1 ABC DEF JKL GHI ABC ABC ABC DEF GHI DEF DEF DEF ABC GHI DEF ABC column 2 9 2 3 4 6 2