You can use the following basic syntax to add the values in two pandas DataFrames:
df3 = df1.add(df2, fill_value=0)
This will produce a new DataFrame that contains the sum of the corresponding elements in each individual DataFrame.
If an element exists in one DataFrame and not the other, the existing element will be used in the resulting DataFrame.
The following example shows how to use this syntax in practice.
Example: How to Add Two Pandas DataFrames
Suppose we have the following two pandas DataFrames:
import pandas as pd #create first DataFrame df1 = pd.DataFrame({'points': [18, 22, 19, 14, 11], 'assists': [5, 11, 7, 9, 12]}) #view first DataFrame print(df1) points assists 0 18 5 1 22 11 2 19 7 3 14 9 4 11 12 #create second DataFrame df2 = pd.DataFrame({'points': [10, 5, 4, 3, 9, 14], 'assists': [9, 7, 4, 2, 3, 3]}) #view second DataFrame print(df2) points assists 0 10 9 1 5 7 2 4 4 3 3 2 4 9 3 5 14 3
We can use the following syntax to create a new DataFrame that takes the sum of corresponding elements in each individual DataFrame:
#create new DataFrame by adding two DataFrames
df3 = df1.add(df2, fill_value=0)
#view new DataFrame
print(df3)
points assists
0 28.0 14.0
1 27.0 18.0
2 23.0 11.0
3 17.0 11.0
4 20.0 15.0
5 14.0 3.0
Notice that the resulting DataFrame contains the sum of corresponding elements in each individual DataFrame.
Note that the row with an index value of 5 only existed in the second DataFrame, so the values in this row are simply the values from the second DataFrame.
Also notice that since we performed addition, each of the values in the new DataFrame are represented as float values with one decimal place.
To convert each of these values back to an integer, we can use the astype() function:
#convert all columns in new DataFrame to integer
df3 = df3.astype('int64')
#view updated DataFrame
print(df3)
points assists
0 28 14
1 27 18
2 23 11
3 17 11
4 20 15
5 14 3
Each of the values in the new DataFrame are now integers.
Additional Resources
The following tutorials explain how to perform other common tasks in pandas:
Pandas: Add Column from One DataFrame to Another
Pandas: Get Rows Which Are Not in Another DataFrame
Pandas: How to Check if Multiple Columns are Equal