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

Pandas中如何索引DataFrame列值并拆分生成新列

Pandas拆分列生成新列实现方案

针对按固定规则拆分某列值、生成多列新字段的需求,优先使用Pandas内置的字符串处理方法实现,性能和可读性都更好。


方法1:按分隔符拆分(适配示例场景)

示例中Data列统一用-作为两部分内容的分隔符,直接用str.split即可一步完成拆分:

import pandas as pd

# 构造示例原始数据
df = pd.DataFrame({
    'Data': ['0010-AAAA', '0010-BBBB', '0010-CCCC', '0011-DDDD', '0011-EEEE']
})

# 核心拆分逻辑:按'-'拆分,拆分结果直接赋值给两个新列
df[['col_2', 'col_3']] = df['Data'].str.split('-', expand=True)

参数说明:

  • expand=True:会把拆分后的列表结果展开为DataFrame格式,列数和拆分出的片段数一致,可直接赋值给对应新列
  • 如果列内容里存在多个相同分隔符,可加n=1参数控制仅按第一个分隔符拆分,避免过度拆分,写法为str.split('-', n=1, expand=True)

方法2:按固定字符位置截取

如果字段长度固定、拆分位置是固定偏移量,也可以直接用字符串索引截取:

# 前4位为col_2,第6位(索引从0开始,跳过中间的'-')到末尾为col_3
df['col_2'] = df['Data'].str[:4]
df['col_3'] = df['Data'].str[5:]

运行结果

两种方法执行后,得到的DataFrame完全符合预期:

Data col_2 col_3
0  0010-AAAA  0010  AAAA
1  0010-BBBB  0010  BBBB
2  0010-CCCC  0010  CCCC
3  0011-DDDD  0011  DDDD
4  0011-EEEE  0011  EEEE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:01:03