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

提取Pandas数据框条目中| |间的数字,现有代码未生效求排查

问题分析与正确解法

你的代码确实存在两处关键错误,导致完全没达到预期效果:

  • lstrip不支持正则表达式:lstrip()的参数是普通字符集合,不是正则模式。它只会从字符串开头删除参数里包含的任意单个字符,不会识别你写的正则规则。而且你的目标字符串开头是x,不在你定义的字符集里,所以根本不会删除任何内容。
  • 思路方向错误:你的需求是提取| |之间的数字,而不是删除字符串开头的字符,用lstrip从一开始就偏离了目标。

正确实现方式

直接用Pandas内置的字符串正则提取方法,比map+lambda更简洁高效:

# 处理索引为1的列,提取|之间的数字
df[1] = df[1].str.extract(r'\|(\d+)\|')

如果需要把结果转成列表,直接用df[1].tolist()就行。

正则说明

r'\|(\d+)\|'的作用:

  • \|:匹配字面量的|(因为|在正则里是特殊符号,必须转义)
  • (\d+):捕获一个或多个连续数字,这就是我们要保留的内容
  • str.extract会自动提取捕获组内的内容,正好得到|之间的数字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:25:19