如何在 pandas 中连接和求和不同长度的列?

huangapple go评论60阅读模式
英文:

how to join and sum columns (of different lengths) in pandas?

问题

我有以下数据框:

df1

name  value 
a      3   
b      4
c      5

df2

name  value 
b      2  
a      1

我想要创建一个像这样的数据框(可以有许多值列):

name  value 
a      4   
b      6
c      5

有人知道我应该如何做到这一点吗?

英文:

lets say I have the following dataframes

df1

name  value 
a      3   
b      4
c      5

df2

name  value 
b      2  
a      1

and I want to make a dataframe like this (there can be many value columns)

name  value 
a      4   
b      6
c      5

Does anyone know how I would do this?

答案1

得分: 1

你可以暂时将 "name" 设置为索引:

df1.set_index('name').add(df2.set_index('name'), fill_value=0).reset_index()

输出结果:

  name  value
0    a    4.0
1    b    6.0
2    c    5.0
英文:

You can temporarily set "name" as index:

df1.set_index('name').add(df2.set_index('name'), fill_value=0).reset_index()

Output:

  name  value
0    a    4.0
1    b    6.0
2    c    5.0

答案2

得分: 1

df2.set_index("name").reindex(df1.name).fillna(0).astype(int)+df1.set_index("name")

英文:
df2.set_index("name").reindex(df1.name).fillna(0).astype(int)+df1.set_index("name")

out:

      value
name       
a         4
b         6
c         5

huangapple
  • 本文由 发表于 2023年2月7日 03:38:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/75365806.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定