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

如何将DataFrame中特定格式的字符串列拆分为两列?

拆分DataFrame中的字符串为指定两列

假设你的DataFrame有一列(比如命名为raw_col)包含目标格式的字符串,以下两种方法可以快速完成拆分:

方法1:使用str.extract提取匹配组

利用正则表达式直接捕获两部分内容,适合明确需要提取特定模式的场景:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'raw_col': ['Rondonópolis (c/ 5,2%) 3500 7000 2789 4258']
})

# 提取为两列
df[['A', 'B']] = df['raw_col'].str.extract(r'^(.*?)\s+(\d.*)$')

正则说明:

  • ^(.*?):非贪婪匹配从字符串开头到第一个连续空格的所有内容(即城市名称和百分比部分)
  • \s+:匹配分隔用的一个或多个空格
  • (\d.*):匹配从第一个数字开始到字符串结尾的所有内容(即后续的数字序列)

方法2:使用str.split按条件拆分

通过正向预查指定拆分规则,仅在"空格后紧跟数字"的位置拆分,拆分次数限制为1,确保只生成两列:

df[['A', 'B']] = df['raw_col'].str.split(r'\s+(?=\d)', n=1, expand=True)

正则说明:

  • \s+(?=\d):匹配一个或多个空格,且空格后面必须是数字(正向预查(?=\d)确保不会拆分数字之间的空格)
  • n=1:只执行一次拆分,避免把数字部分拆成多列
  • expand=True:将拆分结果展开为DataFrame列

执行后,你的DataFrame会生成A和B两列,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:40:17