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

如何将DataFrame中的JSON格式列转换为Pandas列?

优化JSON格式列转Pandas独立列的实现

问题背景

现有如下Pandas DataFrame(仅持有df_sample,无原始字典d):

import pandas as pd

df_sample = pd.DataFrame(
    data={'parameters': [
        {'Year': '2018',
         'Median Age': 'nan',
         'Total Non-Family Household Income': 289.0,
         'Total Household Income': 719.0,
         'Gini Index of Income Inequality': 0.4121}
    ]}
)

需要将parameters列中的字典内容拆分为独立列,替代原有的非Pythonic实现。

更Pythonic的实现方案

方案1:使用pd.json_normalize(推荐)

json_normalize是Pandas专门为嵌套字典/JSON结构设计的工具,直接处理列中的字典序列,代码简洁高效:

# 提取parameters列的字典数据,生成扩展后的DataFrame
expanded_df = pd.json_normalize(df_sample['parameters'])
# 合并原DataFrame(删除原parameters列)与扩展结果
result_df = df_sample.drop('parameters', axis=1).join(expanded_df)

方案2:使用Series.apply(pd.Series)

如果数据无多层嵌套结构,也可以直接将列中的字典转为Series,自动拆分为多列:

# 将parameters列的字典批量转为多列
expanded_df = df_sample['parameters'].apply(pd.Series)
# 合并并清理原列
result_df = df_sample.drop('parameters', axis=1).join(expanded_df)

为什么比原实现更优

  • 无需依赖json库做来回序列化/反序列化操作,减少冗余步骤
  • 代码逻辑更直观,完全贴合Pandas原生API设计习惯
  • 处理大规模数据时性能更优,原生Pandas方法比手动循环+JSON转换效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:25:17