Python - Merge Pandas DataFrame with Outer Join


To merge Pandas DataFrame, use the merge() function. The outer join is implemented on both the DataFrames by setting under the “how” parameter of the merge() function i.e. −

how = “outer”

At first, let us import the pandas library with an alias −

import pandas as pd

Let us create DataFrame1 −

dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
      "Units": [100, 150, 110, 80, 110, 90]
   }
)

Let us now create DataFrame2 −

dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
      "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]

   }
)

Merge DataFrames with a common column Car and "outer" in "how" parameter implements Outer Join −

mergedRes = pd.merge(dataFrame1, dataFrame2, on ='Car', how ="outer")

Example

Following is the code −

import pandas as pd

# Create DataFrame1
dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
      "Units": [100, 150, 110, 80, 110, 90]
   }
)

print"DataFrame1 ...\n",dataFrame1

# Create DataFrame2
dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
      "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]

   }
)

print"\nDataFrame2 ...\n",dataFrame2

# merge DataFrames with common column Car and "outer" in "how" parameter implements Outer Join
mergedRes = pd.merge(dataFrame1, dataFrame2, on ='Car', how ="outer")
print"\nMerged dataframe with outer join...\n", mergedRes

Output

This will produce the following output −

DataFrame1 ...
       Car   Units
0      BMW     100
1    Lexus     150
2     Audi     110
3  Mustang      80
4  Bentley     110
5   Jaguar      90

DataFrame2 ...
        Car Reg_Price
0       BMW      7000
1     Lexus      1500
2     Tesla      5000
3   Mustang      8000
4  Mercedes      9000
5    Jaguar      6000

Merged dataframe with outer join...
        Car   Units  Reg_Price
0       BMW   100.0     7000.0
1     Lexus   150.0     1500.0
2      Audi   110.0        NaN
3   Mustang   80.0      8000.0
4   Bentley   110.0        NaN
5    Jaguar   90.0      6000.0
6     Tesla   NaN       5000.0
7  Mercedes   NaN       9000.0

Updated on: 14-Sep-2021

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements