如何合并共享列上的数据帧字典 [duplicate]

How to merge dictionary of dataframes on shared column [duplicate]

提问人:florence-y 提问时间:10/25/2023 最后编辑:florence-y 更新时间:10/25/2023 访问量:45

问:

我有一本包含 7 个 t 统计值数据帧(针对不同临床站点)的字典,其中每个数据帧有两列,其中包含大约 100 个大脑 ROI 和该 ROI 的 t 统计值。我的目标是使用每个 t 统计值创建每个 ROI 的数据帧。

不过,在这篇文章中,为了简洁和健康信息,我将使用一个数据帧的示例字典来描述一些不同的东西。和。ROI = charactert-statistic = color_{}

我尝试将字典值传递到 with 中,并且我得到了我想要合并的共享列的重复列。pd.concatjoin="inner"

之前 / 字典

In[1]:  sega_df_dict

Out[1]: 
{'generic':   character                         color_generic
 0            Sonic                             Blue
 1            Tails                             Yellow
 2            Knuckles                          Red
 3            Amy                               Pink
 4            Shadow                            Black
 
 [5 rows x 2 columns],

 'precise':   character                         color_precise
 0            Sonic                             Cobalt
 1            Tails                             Gold
 2            Knuckles                          Crimson
 3            Amy                               Rose Gold
 4            Shadow                            Ebony

 [5 rows x 2 columns]

当前之后/结果

In[2]:  sega_final_df = pd.concat(sega_df_dict.values(), axis=1, join="inner")

Out[2]:

        character       color_generic       character       color_precise
0       Sonic           Blue                Sonic           Cobalt
1       Tails           Yellow              Tails           Gold
2       Knuckles        Red                 Knuckles        Crimson
3       Amy             Pink                Amy             Rose Gold
4       Shadow          Black               Shadow          Ebony

期望的结果

In[3]: ...

Out[3]:

        character       color_generic       color_precise
0       Sonic           Blue                Cobalt
1       Tails           Yellow              Gold
2       Knuckles        Red                 Crimson
3       Amy             Pink                Rose Gold
4       Shadow          Black               Ebony

我是否必须重置索引或沿特定轴连接?

python pandas 字典 合并

评论


答:

1赞 Tranbi 10/25/2023 #1

你应该在'character'上合并,而不是加入你的dfs:

sega_final_df = reduce(lambda df1, df2: pd.merge(df1, df2,on=['character'],
                                            how='inner'), sega_df_dict.values())