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

Pandas新增列提取最后分隔符后内容 无需预知分隔符数量

解决方案

不需要提前预知每个字符串内的点号数量,直接取split结果的最后一个元素即可,实现代码如下:

x2['Desired Column Values'] = x2['Column X'].str.split('.').str[-1]

实现逻辑

  • 调用.str.split('.')将列内每个字符串按.分隔为列表
  • Python原生支持负索引取值,.str[-1]会直接返回每个列表的最后一位元素,也就是最后一个.之后的内容,完全适配点号数量不固定的场景

性能更优的可选方案

如果数据集规模较大、单个字符串长度较长,可以使用从右向左拆分的rsplit方法,仅拆分1次就可以拿到目标值,不需要遍历整个字符串做全量分割,执行效率更高:

# 从右侧开始按.拆分,最多拆分1次,拆分后取索引为1的元素即为目标值
x2['Desired Column Values'] = x2['Column X'].str.rsplit('.', n=1).str[1]

结果验证

针对给出的示例数据,两种方法返回的结果完全匹配预期:

  • www.xyz.hgk.lmo.de.eu.price → price
  • www.amazon.us.stock → stock
  • www.hhhh.com.price → price
  • www.ebay.eu.stock → stock
  • www.mmm.price → price

之前使用固定索引.str[2]的写法只能适配拆分后列表长度≥3、且目标值固定在第3位的场景,无法适配长度不固定的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:06:28