I'm trying to merge two DataFrames summing columns value.
>>> print(df1)    id name  weight 0   1    A       0 1   2    B      10 2   3    C      10  >>> print(df2)    id name  weight 0   2    B      15 1   3    C      10   I need to sum weight values during merging for similar values in the common column.
merge = pd.merge(df1, df2, how='inner')   So the output will be something like following.
   id name  weight 1   2    B      25 2   3    C      20 
                sum() to Sum All Columns. Use DataFrame. sum() to get sum/total of a DataFrame for both rows and columns, to get the total sum of columns use axis=1 param. By default, this method takes axis=0 which means summing of rows.
This solution works also if you want to sum more than one column. Assume data frames
>>> df1    id name  weight  height 0   1    A       0       5 1   2    B      10      10 2   3    C      10      15 >>> df2    id name  weight  height 0   2    B      25      20 1   3    C      20      30   You can concatenate them and group by index columns.
>>> pd.concat([df1, df2]).groupby(['id', 'name']).sum().reset_index()    id name  weight  height 0   1    A       0       5 1   2    B      35      30 2   3    C      30      45 
                        In [41]: pd.merge(df1, df2, on=['id', 'name']).set_index(['id', 'name']).sum(axis=1) Out[41]:  id  name 2   B       25 3   C       20 dtype: int64 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With