You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需迭代统计Pandas DataFrame中A后数值大于3的出现次数?

问题描述

给定如下Pandas DataFrame:

import pandas as pd
df = pd.DataFrame(['A(3)BC(1)', 'A(2)BC(5)', 'A(1)BC(3)', 'A(2)BC(5)', 'A(4)BC(2)'], columns=['Column1'])

对应表格:

Column1
0A(3)BC(1)
1A(2)BC(5)
2A(1)BC(3)
3A(2)BC(5)
4A(4)BC(2)

请问是否无需逐行迭代,即可统计其中A后括号内数值大于3的记录次数?

解决方案

完全可以不用逐行迭代,利用Pandas的向量化字符串操作就能高效完成统计,步骤如下:

  1. 提取A后括号内的数值:用str.extract配合正则表达式精准捕获A后面括号里的数字,再转为数值类型:
# 提取A(xxx)中的数字并转为整数
a_values = df['Column1'].str.extract(r'A\((\d+)\)', expand=False).astype(int)
  1. 统计符合条件的记录数:对提取后的数值做条件筛选,用sum()统计次数(布尔值会自动转为1/0):
count = (a_values > 3).sum()
print(count)  # 输出:1

也可以把两步合并成一行代码:

count = df['Column1'].str.extract(r'A\((\d+)\)', expand=False).astype(int).gt(3).sum()

这种方式基于Pandas原生的向量化操作,避免了逐行迭代的低效,处理大规模数据时优势更明显。

内容的提问来源于stack exchange,提问作者Lucas Lazari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:25:06