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

如何从DataFrame列提取各次'/'后4个字符及排查代码错误

Pandas字符串提取问题解决

原始问题

需要从DataFrame的某一列中,提取'/'第一次、第二次、第三次等每一次出现位置之后的4个字符。
DataFrame示例

你代码的报错原因

代码报错
你大概率是对Series使用str.split()后直接用整数索引取值,例如写了类似df['列名'].str.split('/')[1]的代码:这行代码实际是取整个Series对象的第1行数据,而非每行分割后的第1个片段,所以会出现索引越界或结果不符合预期的报错。
如果要取每行分割后的第N个元素,需要追加.str[N]对每个子元素单独做索引。

可运行实现代码

场景1:提取指定第N次/后的4个字符

import pandas as pd

# 示例DataFrame,替换为你自己的数据集即可
df = pd.DataFrame({
    '待处理列': ['xxx/aaaa/yyy/bbbb/zzz', 'test/1111/2222/demo']
})

# N对应要提取的次数:0=第一次,1=第二次,以此类推
N = 0
df[f'第{N+1}次提取结果'] = df['待处理列'].str.split('/').str[N+1].str[:4]

场景2:提取所有/后的4个字符,每行结果存为列表

df['全量提取结果'] = df['待处理列'].str.split('/').apply(
    lambda x: [item[:4] for item in x[1:]]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:36:03