簡體   English   中英

如何合並兩個數據幀並對列的值求和

[英]how to merge two dataframes and sum the values of columns

我有兩個數據幀

df1
Name class value
Sri   1     5
Ram   2     8
viv   3     4

df2
Name class value
Sri   1     5
viv   4     4

我想要的輸出是,

df,

Name class value
Sri   2     10
Ram   2     8
viv   7     8

請幫助,提前謝謝!

我認為需要set_index用於兩個DataFrameadd和最后一次reset_index

df = df1.set_index('Name').add(df2.set_index('Name'), fill_value=0).reset_index()
print (df)
  Name  class  value
0  Ram    2.0    8.0
1  Sri    2.0   10.0
2  viv    7.0    8.0

如果Name中的值不唯一,請使用groupby和aggregate sum

df = df1.groupby('Name').sum().add(df2.groupby('Name').sum(), fill_value=0).reset_index()

pd.concat + groupby + sum

您可以連接各個數據框,然后按鍵列進行分組:

df = pd.concat([df1, df2])\
       .groupby('Name')['class', 'value']\
       .sum().reset_index()

print(df)

  Name  class  value
0  Ram      2      8
1  Sri      2     10
2  viv      7      8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM