首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何合并两个Pandas DataFrames并添加重叠列

如何合并两个Pandas DataFrames并添加重叠列
EN

Stack Overflow用户
提问于 2020-05-26 03:18:30
回答 3查看 281关注 0票数 1

我试图在同一个DataFrames上合并多个DocID,然后汇总权重,但当我合并时,它会创建Weight_x、Weight_y。这只对两个DataFrames来说是可以的,但是根据用户输入合并更改的数据量是可以的,因此合并会多次创建Weight_x、Weight_y。那么,我如何才能合并超过2个DataFrames,使它们在DocID上合并,并将权重相加呢?

示例:

代码语言:javascript
复制
df1= DocID Weight
     1     4
     2     7
     3     8
df2= DocID Weight
     1     5
     2     9
     8     1
finalDf=
     DocID Weight
     1     9
     2     16
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-26 03:30:52

您可以合并,将'DocID‘列设置为索引,然后将其余的列相加在一起。然后,您可以根据需要重新索引并重命名结果final_df中的列:

代码语言:javascript
复制
df_final = pd.merge(df1, df2, on=['DocID']).set_index(['DocID']).sum(axis=1)
df_final = pd.DataFrame({"DocID": df_final.index, "Weight":df_final}).reset_index(drop=True)

输出:

代码语言:javascript
复制
>>> df_final
   DocID  Weight
0      1       9
1      2      16
票数 1
EN

Stack Overflow用户

发布于 2020-05-26 03:35:27

代码语言:javascript
复制
df1.set_index('DocID').add(df2.set_index('DocID')).dropna()

        Weight
DocID   
1       9.0
2       16.0
票数 1
EN

Stack Overflow用户

发布于 2020-05-26 03:27:21

您可以尝试这个pd.merge(df1, df2, on=['DocID']).set_index(['DocID']).sum(axis=1)吗?您现在可以给sum列指定任何名称了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62014086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档