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

Python Pandas如何从字符串中提取数字并拆分生成新的DataFrame行

问题解法

实现思路

  • 先将原数据中用逗号分隔的字符串拆分为列表,再通过explode方法将列表元素展开为独立行
  • 用正则表达式从每行字符串中匹配提取字母前缀和数字部分,分别存入对应列
  • 最后转换price列为数值类型即可

完整可运行代码

import pandas as pd

# 构造示例原始数据
df = pd.DataFrame({'type': ['gp250,sp280']})

# 拆分逗号分隔值并展开为多行
df = df.assign(type=df['type'].str.split(',')).explode('type', ignore_index=True)

# 提取字母和数字部分
# 如果需要gp250提取为25而非250,可将正则改为r'^([a-zA-Z]+)(\d{2})'即可
df[['type', 'price']] = df['type'].str.extract(r'^([a-zA-Z]+)(\d+)$')

# 转换price为整数类型
df['price'] = df['price'].astype(int)

print(df)

输出结果

type  price
0   gp    250
1   sp    280

如果你需要gp对应的price为25,仅需调整正则表达式的数字匹配规则即可,上述代码注释中已给出对应修改方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:09:02