如何合并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"})
两种方法最终都会生成你需要的结构:
| Subject | mean | median | stdev | min | max | count |
|---|---|---|---|---|---|---|
| Sonic | 1 | 3 | 7 | 9 | 22 | 11 |
| Tails | 3 | 5 | 11 | 22 | 33 | 14 |
内容的提问来源于stack exchange,提问作者florence-y
相关产品推荐
相关产品推荐

