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

如何将包含dict值的DataFrame多行合并为单行

实现方案

你遇到的报错是因为pandas默认的行合并方法不支持dict类型的运算,通过自定义聚合逻辑即可完成dict值的拼接整合,以下是两种常用场景的实现代码:

场景1:保留原列结构,同列所有dict合并为单个dict

import pandas as pd

# 你的原始DataFrame命名为df,下同
# 无重复键时直接合并,重复键默认后出现的覆盖先出现的
merged_row = df.agg(lambda col: {k: v for item in col for k, v in item.items()})
# 转为单行DataFrame
result = pd.DataFrame([merged_row.to_dict()])

如果需要保留重复键的所有值,修改聚合逻辑即可:

from collections import defaultdict

def merge_dicts(dict_list):
    res = defaultdict(list)
    for d in dict_list:
        for k, v in d.items():
            res[k].append(v)
    return dict(res)

merged_row = df.agg(merge_dicts)
result = pd.DataFrame([merged_row.to_dict()])

场景2:所有dict的键值对全部展开为单行的独立列

total_dict = {}
for _, row in df.iterrows():
    for col_val in row:
        total_dict.update(col_val)
result = pd.DataFrame([total_dict])

前置检查建议

  • 合并前可先执行df = df.fillna({})将空值替换为空dict,避免空值引发报错
  • 存在重复键需求可自行调整拼接逻辑,比如将重复值拼接为字符串、存储为列表等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:03