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

如何合并DataFrame字典并将键设为合并后DataFrame的列

合并字典中DataFrame的解决方案

方法一:使用pd.concat()(推荐,直观高效)

直接拼接所有DataFrame,利用keys参数保留原字典的键,再将其转为Subject列:

import pandas as pd

# 示例字典(替换为你的实际字典)
df_dict = {
    "Sonic": pd.DataFrame({"mean": [1], "median": [3], "stdev": [7], "min": [9], "max": [22], "count": [11]}),
    "Tails": pd.DataFrame({"mean": [3], "median": [5], "stdev": [11], "min": [22], "max": [33], "count": [14]})
}

# 合并所有DataFrame,将字典键设为外层索引
combined_df = pd.concat(df_dict.values(), keys=df_dict.keys())
# 将外层索引转为Subject列,重置索引清理冗余列
combined_df = combined_df.reset_index(level=0).rename(columns={"level_0": "Subject"})

方法二:修正pd.DataFrame.from_dict()用法

通过遍历字典将每个单行DataFrame转为字典结构,再用orient='index'参数生成目标DataFrame:

import pandas as pd

# 示例字典(替换为你的实际字典)
df_dict = {
    "Sonic": pd.DataFrame({"mean": [1], "median": [3], "stdev": [7], "min": [9], "max": [22], "count": [11]}),
    "Tails": pd.DataFrame({"mean": [3], "median": [5], "stdev": [11], "min": [22], "max": [33], "count": [14]})
}

# 构造以用户名为键、指标为值的字典,再转为DataFrame
combined_df = pd.DataFrame.from_dict(
    {subj: df.iloc[0].to_dict() for subj, df in df_dict.items()},
    orient='index'
).reset_index().rename(columns={"index": "Subject"})

两种方法最终都会生成你需要的结构:

Subjectmeanmedianstdevminmaxcount
Sonic13792211
Tails3511223314

内容的提问来源于stack exchange,提问作者florence-y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:12:08