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

如何基于Pandas DataFrame中某列的子串创建新列?

解决Pandas按子串拆分列生成新列的问题

没问题,针对你这个需求,用Pandas的str.split()方法就能快速搞定!咱们一步步来操作:

1. 先还原你的原始数据(方便复现验证)

首先把你提供的DataFrame构造出来,代码如下:

import pandas as pd

data = {
    'Date': ['02-01-08', '03-01-08', '04-01-08', '05-01-08', '06-01-08'],
    'variable': ['Australia - Sydney - A', 'Australia - Sydney - A', 'Australia - Sydney - A', 'Canada - Toronto - B', 'Canada - Toronto - B']
}

df = pd.DataFrame(data)

2. 核心拆分代码

观察你的variable列,是用-(空格+减号+空格)作为分隔符的,直接用str.split()拆分并展开成新列即可:

# 拆分variable列,展开为3个新列,直接命名为want1、want2、want3
df[['want1', 'want2', 'want3']] = df['variable'].str.split(' - ', expand=True)

3. 验证结果

运行上面的代码后,你的DataFrame就会生成完全符合预期的目标列:

Date               variable      want1   want2 want3
0  02-01-08  Australia - Sydney - A  Australia  Sydney     A
1  03-01-08  Australia - Sydney - A  Australia  Sydney     A
2  04-01-08  Australia - Sydney - A  Australia  Sydney     A
3  05-01-08   Canada - Toronto - B   Canada   Toronto     B
4  06-01-08   Canada - Toronto - B   Canada   Toronto     B

补充小提示

  • 如果你的variable列分隔符不统一(比如有的是单空格、有的是-),可以先用str.replace()统一分隔符再拆分;
  • expand=True是核心参数,它会把拆分后的字符串列表转换成DataFrame,这样就能直接赋值给新列;
  • 如果拆分后列数不确定,可以先不指定列名,后续再根据实际结果调整列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:22:33