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

如何将DataFrame列中的JSON字符串拆分为多列

解决方法

步骤说明

你的数据中「数据」列的字符串是单引号格式的类JSON结构(非标准JSON),需要先转换成Python字典,再拆分为单独列。

完整代码

import pandas as pd
import ast

# 模拟你的原始DataFrame
df = pd.DataFrame({
    'ID': [11, 22, 33],
    '数据': ["{'Name': 'Sam', 'Age': 21}",
            "{'Name': 'Nam', 'Age': 22}",
            "{'Name': 'Pam', 'Age': 21, 'Salary': 10000}"]
})

# 将字符串转为字典
df['数据'] = df['数据'].apply(ast.literal_eval)

# 解析字典为单独列,合并原ID列
result_df = pd.concat([df['ID'], pd.json_normalize(df['数据'])], axis=1)

# 填充缺失值为空字符串(匹配期望结果)
result_df['Salary'] = result_df['Salary'].fillna('')

# 查看结果
print(result_df)

代码解释

  • ast.literal_eval:安全解析单引号格式的字符串为Python字典,避免eval带来的安全风险。
  • pd.json_normalize:将字典列表转换为结构化DataFrame,自动提取所有键作为列,缺失字段填充为NaN。
  • fillna(''):把NaN替换为空字符串,和你期望的输出格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:18:19