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

如何将字典中的pandas DataFrame按规则合并生成新字典?

问题原因

pandas.DataFrame.append() 不会修改原DataFrame对象,只会返回拼接后的新对象,你原代码没有接收返回值,所以字典里的值一直是空的。同时append方法已经被pandas废弃,更推荐用pd.concat()做多个DataFrame的拼接操作。

实现方案

适配固定分组逻辑的代码

如果你的分组规则是固定合并[1,2]、[3,4]两组,可以直接用以下代码实现:

import pandas as pd

d = {1: pd.DataFrame({'a':[1,2],'b':[3,4]}), 
     2: pd.DataFrame({'a':[3,4],'b':[5,6]}),
     3: pd.DataFrame({'a':[10,11],'b':[12,13]}), 
     4: pd.DataFrame({'a':[12,13],'b':[14,15]})}

d_new = {}
for group_key in [1,3]:
    # 提取当前组需要合并的所有DataFrame
    merge_dfs = [d[group_key], d[group_key+1]]
    # 拼接后存入新字典,ignore_index=True可以重置索引,不需要可以删除
    d_new[group_key] = pd.concat(merge_dfs, ignore_index=True)

通用分组版本

如果你的分组规则是所有键排序后两两合并,以每组第一个键为新键,可以写为更通用的形式,不需要硬编码分组:

sorted_keys = sorted(d.keys())
# 每两个键分为一组
key_groups = [sorted_keys[i:i+2] for i in range(0, len(sorted_keys), 2)]
d_new = {}
for g in key_groups:
    d_new[g[0]] = pd.concat([d[k] for k in g], ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:05