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

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

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

问题

我有以下数据框:

df1

  1. name value
  2. a 3
  3. b 4
  4. c 5

df2

  1. name value
  2. b 2
  3. a 1

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

  1. name value
  2. a 4
  3. b 6
  4. c 5

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

英文:

lets say I have the following dataframes

df1

  1. name value
  2. a 3
  3. b 4
  4. c 5

df2

  1. name value
  2. b 2
  3. a 1

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

  1. name value
  2. a 4
  3. b 6
  4. c 5

Does anyone know how I would do this?

答案1

得分: 1

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

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

输出结果:

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

You can temporarily set "name" as index:

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

Output:

  1. name value
  2. 0 a 4.0
  3. 1 b 6.0
  4. 2 c 5.0

答案2

得分: 1

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

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

out:

  1. value
  2. name
  3. a 4
  4. b 6
  5. 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:

确定