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

如何用正则表达式(re)拆分DataFrame中含数字与字符串的列

拆分DataFrame中数字与字符串组合的symbol列

用Pandas的str.extract()方法配合正则表达式就能一次性拆分出数字和字符串部分,具体实现步骤如下:

  1. 导入库并定义原DataFrame
import pandas as pd

df = pd.DataFrame({'symbol': ['12345abc', '2234bcd', '323456cde'],'date':[5, 6, 7]})
  1. 执行拆分操作
# 用正则提取数字段和字母段,分别存入num和name列
df[['num', 'name']] = df['symbol'].str.extract(r'^(\d+)([a-zA-Z]+)$')

# 按照示例要求,把原symbol列替换成提取出的数字部分
df['symbol'] = df['num']

# 可选:如果不需要单独保留num列,直接删除即可
# df.drop('num', axis=1, inplace=True)
  1. 正则表达式说明
    ^(\d+)([a-zA-Z]+)$的作用:
  • ^:锁定字符串开头
  • (\d+):捕获连续的数字序列,对应num列
  • ([a-zA-Z]+):捕获连续的大小写字母序列,对应name列
  • $:锁定字符串结尾

如果你的字符串部分包含数字以外的其他字符(比如符号),可以把正则改成更通用的^(\d+)(\D+)$,\D会匹配任意非数字字符。

  1. 最终结果
    执行完代码后,DataFrame就会变成你需要的结构:
print(df)
# 输出:
#    symbol  name  date
# 0   12345   abc     5
# 1    2234   bcd     6
# 2  323456   cde     7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:35:24