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

如何高效解析Pandas中存储嵌套JSON字符串的列?

高效解析Pandas DataFrame中嵌套JSON字符串为独立列的方法

针对你提供的包含嵌套JSON字符串的DataFrame,这里有一个高效且简洁的解决方案,利用Pandas原生工具来处理:

步骤1:准备工作

首先确保导入所需库:

import pandas as pd
import json

步骤2:解析JSON字符串并展开为列

Pandas的pd.json_normalize()是专门为处理嵌套JSON设计的高效工具,搭配json.loads()将字符串转为字典后,就能快速展开所有层级的键为独立列:

# 先将data列的JSON字符串转换为Python字典对象
df['data'] = df['data'].apply(json.loads)

# 使用json_normalize解析嵌套结构,自动展开嵌套键
parsed_json_df = pd.json_normalize(df['data'])

# 将原DataFrame(去掉data列)和解析后的DF合并
final_df = pd.concat([df.drop('data', axis=1), parsed_json_df], axis=1)

处理不合法的JSON字符串

如果你的data列存在截断或格式错误的JSON(比如示例中第二个条目末尾的use...),可以添加一个安全解析函数来避免报错:

def safe_parse_json(s):
    try:
        return json.loads(s)
    except json.JSONDecodeError:
        # 这里可以根据需求返回空字典、NaN或其他默认值
        return {}

df['data'] = df['data'].apply(safe_parse_json)

为什么这个方法高效?

  • pd.json_normalize()是Pandas底层优化的函数,比手动循环解析字典要快得多,尤其适合大规模数据集
  • 自动处理嵌套层级,生成的列名用点分隔(比如account_data.currency.current),清晰反映原JSON的结构
  • 与原DataFrame的合并操作也是Pandas原生的高效操作,避免额外的性能开销

最终结果示例

处理后的final_df会包含原有的bank_account列,加上解析后的uid、account_type、user_name、account_data.currency.current等所有嵌套列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:00