如何提取pandas DataFrame列中下划线分隔的各段文本内容
解决方案
针对下划线分隔的不定长前缀字符串提取需求,直接使用pandas内置的字符串拆分方法即可实现通用处理,无需适配首位字段长度,7510行数据无性能压力。
- 拆分目标列
假设存储下划线分隔字符串的列名为target_col,执行拆分操作将每个片段转为独立列:
# expand=True会直接将拆分结果转为DataFrame,每列对应一个拆分片段 df_split = df['target_col'].str.split('_', expand=True)
拆分后原字符串1_A01_1_1_NA会生成5列,索引0到4对应值依次为'1'、'A01'、'1'、'1'、'NA'。
- 提取所需片段
你需要的是除首位片段外的所有内容,直接取索引1及之后的列即可:
# 提取除第一个片段外的所有列 df_extracted = df_split.loc[:, 1:] # 可选:重命名提取后的列,可按需修改列名 df_extracted.columns = ['part1', 'part2', 'part3', 'part4'] # 可选:将提取结果合并回原DataFrame df = pd.concat([df, df_extracted], axis=1)
- 异常处理(可选)
如果存在部分行的下划线数量不符合预期,可提前过滤合规数据:
# 筛选符合4个下划线(共5个片段)规则的行,数值可按需调整 df = df[df['target_col'].str.count('_') == 4]
内容的提问来源于stack exchange,提问作者manueldiaz97
相关产品推荐
相关产品推荐

