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

如何将Pandas DataFrame中列表格式的人口分布列拆分为多列并保留关联ID

实现方法

你之前explode失效大概率是Demographic_distribution列为JSON字符串格式,而非Python原生列表对象,按以下步骤操作即可:

前置依赖

导入需要的工具库:

import pandas as pd
import json

步骤1:校验并转换列格式

先检查列的数据类型:

print(df['Demographic_distribution'].apply(type).unique())

如果输出包含<class 'str'>,说明是JSON字符串,先转成原生列表:

df['Demographic_distribution'] = df['Demographic_distribution'].apply(json.loads)

步骤2:拆分列表为单行字典

用explode方法把每个列表元素拆为独立行,保留对应ID:

df_exploded = df.explode('Demographic_distribution', ignore_index=True)

步骤3:拆分字典字段为独立列

两种方法均可实现:

  • 方法1:用json_normalize解析字典(性能更优)
df_final = pd.concat([
    df_exploded['ID'],
    pd.json_normalize(df_exploded['Demographic_distribution'])
], axis=1)
  • 方法2:用Series转换字典
df_final = df_exploded.join(
    df_exploded['Demographic_distribution'].apply(pd.Series)
).drop('Demographic_distribution', axis=1)

输出效果

最终得到的df_final会包含4列:ID、percentage、age、gender,每行对应原列表中的一个人口统计条目,ID和原数据的对应关系完全保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:51:02