如何将含字典格式列的pandas DataFrame转换为指定结构?
解决方法
要把嵌套字典列表的结构展开为目标格式的表格,用pandas的explode()方法配合字典展开操作就能实现,具体步骤如下:
1. 构造原始DataFrame(已有数据可跳过)
import pandas as pd df = pd.DataFrame({ 'id': [1, 2, 3], 'data': [ [{'name': 'aaa', 'clusterName': 'AAA'}, {'name': 'bbb', 'clusterName': 'BBB'}], [{'name': 'ccc', 'clusterName': 'CCC'}, {'name': 'ddd', 'clusterName': 'DDD'}], [{'name': 'ccc', 'clusterName': 'CCC'}] ] })
2. 展开列表与字典
# 先把data列的列表拆成单独行 df_exploded = df.explode('data', ignore_index=True) # 将字典列展开为独立字段,和id列拼接 result = pd.concat([df_exploded['id'], df_exploded['data'].apply(pd.Series)], axis=1)
简化版一行代码
也可以合并两步,减少中间变量:
result = (df.explode('data', ignore_index=True) .pipe(lambda x: pd.concat([x['id'], x['data'].apply(pd.Series)], axis=1)))
执行后result就是目标格式的DataFrame,输出示例:
| id | name | clusterName |
|---|---|---|
| 1 | aaa | AAA |
| 1 | bbb | BBB |
| 2 | ccc | CCC |
| 2 | ddd | DDD |
| 3 | ccc | CCC |
内容的提问来源于stack exchange,提问作者nuttychan
相关产品推荐
相关产品推荐

