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

如何将含DataFrame的字典转为目标DataFrame?解决pd.DataFrame转换失败问题

解决字典转DataFrame实现行拼接的问题

问题原因

直接用pd.DataFrame(dic_1)会将字典的键作为列名,每个列对应原字典中的DataFrame对象,最终生成带多层列结构的DataFrame,这和val_1.append(val_2)的行拼接需求完全不符。

正确实现方法

方法1:使用pd.concat实现行拼接(推荐)

pd.concat是Pandas官方推荐替代append的方法(append已被标记为弃用),只需提取字典的所有值并传入即可:

import pandas as pd
val_1 = pd.DataFrame({'category':['a','b'],'amount':[1,3]})
val_2 = pd.DataFrame({'category':['d','e'],'amount':[4,7]})
dic_1 ={'v01':val_1,'v02':val_2}

# 实现与val_1.append(val_2)完全一致的结果
result = pd.concat(dic_1.values(), ignore_index=True)
print(result)

输出结果:

category  amount
0        a       1
1        b       3
2        d       4
3        e       7
  • ignore_index=True用于重置合并后的行索引,和append默认行为一致;如果需要保留原索引可去掉该参数。

方法2:保留来源标记(可选)

如果需要知道每行数据来自字典的哪个键,可以通过keys参数添加层级索引:

result_with_source = pd.concat(dic_1, names=['data_source', 'original_index'])
print(result_with_source)

输出结果:

category  amount
data_source original_index            
v01         0                a       1
            1                b       3
v02         0                d       4
            1                e       7

若要移除层级索引,可后续调用reset_index():

result_flattened = result_with_source.reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:22:43