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

如何合并两个字典并生成指定格式的Pandas DataFrame?

问题

有两个生成不同字典的函数,需先将两个字典合并为一个,再创建符合预期格式的Pandas DataFrame。当前代码生成的结果不符合预期,具体代码如下:

import pandas as pd
output_df1 = {}
output_df1['diff_sum'] = 108
output_df1['cumsum'] = 232
out2 = {}
out2['carving'] = 1299
out2['bearing'] = 255
merge_dict = {**output_df1, **out2}
# upto this I'm able to do this
new_df = pd.DataFrame()
new_df['tata'] = merge_dict
new_df['diff_sum'] = 108
new_df

实际结果:生成的DataFrame中,tata列按字典的键分多行显示对应值,额外添加的diff_sum列每行都是108,结构与需求不符。
预期结果:生成一行数据,列名是合并后字典的所有键(diff_sum、cumsum、carving、bearing),对应值分别为108、232、1299、255,行标签为tata。

解决方法

要得到预期格式的DataFrame,核心是把合并后的字典转换成一行数据,并设置行索引为tata。修改后的代码如下:

import pandas as pd

output_df1 = {'diff_sum': 108, 'cumsum': 232}
out2 = {'carving': 1299, 'bearing': 255}
merge_dict = {**output_df1, **out2}

# 直接用字典创建一行数据的DataFrame,指定行索引
new_df = pd.DataFrame([merge_dict], index=['tata'])

print(new_df)

代码说明:

  • 原代码错误在于直接将字典赋值给列new_df['tata'],Pandas会默认把字典的键作为行、值作为对应行的列值,这和预期结构完全相反。
  • 把合并后的字典放入列表[merge_dict]中,Pandas会将其识别为一行数据,列名自动匹配字典的键。
  • 通过index=['tata']设置行标签,让结果的行索引显示为tata,完全符合预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:01:09