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

Python Pandas如何提取单元格数据并转化为结构化多行多列

实现方案

使用pandas内置的矢量化操作即可高效完成转换,全程无需手动循环,处理大体积数据集时性能远高于遍历实现。

完整代码示例

import pandas as pd

# 构造示例原始数据,实际使用时替换为你读取的数据集即可
df = pd.DataFrame({
    'ID': ['abc', 'def'],
    'Value': ['(john:10),(albert:5),(hanna:7)', '(frank:5),(dave:8),(ben:11)']
})

# 1. 去除所有括号,按逗号拆分得到单个键值对组成的列表
df['Value'] = df['Value'].str.replace(r'[()]', '', regex=True).str.split(',')

# 2. 炸开列表字段,每个键值对单独占一行
df = df.explode('Value', ignore_index=True)

# 3. 按冒号拆分键值对为两列,并重命名
df[['Value1', 'Value2']] = df['Value'].str.split(':', expand=True)
df = df.drop('Value', axis=1)

# 可选:将Value2转为数值类型
df['Value2'] = pd.to_numeric(df['Value2'])

print(df)

操作逻辑说明

  • 第一步通过正则清洗冗余括号,把原本的长字符串转为键值对列表,全程为矢量化操作,不会触发逐行循环
  • 第二步调用explode方法直接展开列表行,一步完成行转列操作
  • 第三步拆分键值对得到最终需要的两列,按需做类型转换即可

如果你的实际数据中键/值本身包含括号、逗号、冒号等特殊字符,调整第一步的正则和拆分规则适配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 07:06:05