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

如何自动化提取Pandas Series中字符串第二个下划线前的内容?

提取Pandas Series中第二个下划线之前的内容

我来帮你搞定这个字符串提取需求!针对你给出的Pandas Series,这里有两种简洁可靠的方法实现只保留第二个下划线之前的内容:

方法一:使用str.split分割拼接

这种方法直观易懂,通过分割字符串后截取目标部分再拼接:

import pandas as pd

# 原始Series
s = pd.Series(['abc_def_(123)', 'aerbc_dehjf_(12358)', 'aerbc_df_(89'])
# 分割、截取、拼接
new_s = s.str.split('_', n=2).str[:2].str.join('_')

代码说明:

  • str.split('_', n=2):按下划线_分割每个字符串,最多分割2次,这样每个元素会被拆成前两个目标段+剩余内容的结构
  • str[:2]:提取分割后的前两个部分
  • str.join('_'):把这两个部分用下划线重新拼接起来

方法二:使用正则表达式str.extract

如果偏好正则的方式,我们可以直接匹配第二个下划线之前的所有内容:

new_s = s.str.extract(r'^([^_]+_[^_]+)', expand=False)

正则说明:

  • ^:匹配字符串的起始位置,确保从开头开始匹配
  • [^_]+:匹配一个或多个非下划线的字符
  • [^_]+_[^_]+:刚好匹配到第二个下划线之前的全部内容(第一段非下划线字符 + 下划线 + 第二段非下划线字符)
  • expand=False:让结果返回一个Series而不是DataFrame,符合你的需求

两种方法运行后,new_s都会得到你期望的结果:

0        abc_def
1    aerbc_dehjf
2       aerbc_df
dtype: object

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:20:19