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

如何拆分字符串并提取第一个连字符后的全部内容

问题

我需要提取字符串中第一个连字符后的完整内容,但使用str.split('-').str[1:]得到的是列表(例如处理abc-123-test时返回['123','test']),希望直接得到123-test这样的字符串格式。尝试过以下代码的最后两行,但结果不符合预期:

t = {'test_string':['abc-123-test']}
test = pd.DataFrame(data=t)
test['id'] = test['test_string'].str.split('-').str[0]
test['id_string'] = test['test_string'].str.split('-').str[1:].astype(str)
test['id_string'] = str(test['test_string'].str.split('-').str[1:].astype(str))
解决方案

方法1:限制拆分次数(推荐)

使用str.split的n参数,指定只拆分第一个连字符,拆分后的列表仅有两个元素,取索引1的元素就是目标内容:

test['id_string'] = test['test_string'].str.split('-', n=1).str[1]

方法2:用str.partition拆分

str.partition('-')会将字符串拆分为(前缀, 分隔符, 后缀)的元组,直接取第三个元素即可得到第一个连字符后的全部内容:

test['id_string'] = test['test_string'].str.partition('-')[2]

方法3:通过索引切片

先找到第一个连字符的位置,再从该位置的下一位开始切片:

test['id_string'] = test['test_string'].apply(lambda x: x[x.find('-') + 1:] if '-' in x else x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:27:12