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

如何在Pandas中高效拆分DataFrame列以生成多列?

高效拆分Pandas列的优化方案

问题场景

需要从列df['A']中拆分出df['B']和df['C'],原代码因重复调用split,在大数据量下性能不佳:

df['B'] = df['A'].split("_").str[0]
df['C'] = df['A'].split("_").str[1]

优化方案

1. 单次str.split配合expand=True(推荐)

仅执行一次拆分操作,直接生成多列并赋值,避免重复计算:

df[['B', 'C']] = df['A'].str.split('_', expand=True)

expand=True会将拆分结果转为DataFrame,直接映射到目标列,是最简洁高效的常规方案。

2. 正则表达式提取(适合格式固定场景)

如果df['A']的格式严格为[前缀]_[后缀],可以用正则精准匹配提取,无需拆分后再索引:

df[['B', 'C']] = df['A'].str.extract(r'^([^_]+)_([^_]+)$', expand=True)

该方法在格式无异常的场景下,性能与split(expand=True)接近,且逻辑更直观。

3. 超大数据量进阶写法

若数据量达到千万级以上,可通过tolist()转换后构造DataFrame,性能表现与第一种方案一致:

split_result = df['A'].str.split('_').tolist()
df[['B', 'C']] = pd.DataFrame(split_result, index=df.index)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:20:17