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

如何用Pandas筛选Cuenta列第3-4位为05的数据行?

解决DataFrame筛选Cuenta列第3、4位为"05"的问题

问题分析

你原代码里的正则表达式..05*存在两个关键错误:

  1. 5*表示匹配0个或多个5,不是匹配后续任意字符,不符合需求;
  2. 没有用^锚定字符串开头,会导致匹配到字符串中间出现xx05的情况,无法精准限定第3、4位。

两种可行解决方案

方案一:字符串切片(推荐,简单高效)

直接截取Cuenta列每个值的第3-4位(Python字符串索引从0开始,对应切片[2:4]),判断是否等于"05":

# 先确保Cuenta列是字符串类型(如果原本是数字的话)
df['Cuenta'] = df['Cuenta'].astype(str)
# 筛选目标行
result = df[df['Cuenta'].str[2:4] == '05']

方案二:修正正则表达式

使用^锚定开头,用.{2}匹配前两个任意字符,再精准匹配"05",确保第3、4位是目标值:

df['Cuenta'] = df['Cuenta'].astype(str)
pattern = r'^.{2}05'
result = df[df['Cuenta'].str.contains(pattern)]

筛选结果

两种方法都会得到符合要求的行:

AñoPeriodoCuenta
2023151050300
2023251053900
2023651050300
2023751050600

内容的提问来源于stack exchange,提问作者Aleja Gallo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:04