w3resource

Pandas: Merge two dataframes with different columns


14. Merge DataFrames with Different Columns

Write a Pandas program to merge two given dataframes with different columns.

Test Data:

data1:
  key1 key2   P   Q
0   K0   K0  P0  Q0
1   K0   K1  P1  Q1
2   K1   K0  P2  Q2
3   K2   K1  P3  Q3
data2:
  key1 key2   R   S
0   K0   K0  R0  S0
1   K1   K0  R1  S1
2   K1   K0  R2  S2
3   K2   K0  R3  S3

Sample Solution:

Python Code :

import pandas as pd
data1 = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                     'key2': ['K0', 'K1', 'K0', 'K1'],
                     'P': ['P0', 'P1', 'P2', 'P3'],
                     'Q': ['Q0', 'Q1', 'Q2', 'Q3']}) 
data2 = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                      'key2': ['K0', 'K0', 'K0', 'K0'],
                      'R': ['R0', 'R1', 'R2', 'R3'],
                      'S': ['S0', 'S1', 'S2', 'S3']})
print("Original DataFrames:")
print(data1)
print("--------------------")
print(data2)
print("\nMerge two dataframes with different columns:")
result = pd.concat([data1,data2], axis=0, ignore_index=True)
print(result)

Sample Output:

Original DataFrames:
  key1 key2   P   Q
0   K0   K0  P0  Q0
1   K0   K1  P1  Q1
2   K1   K0  P2  Q2
3   K2   K1  P3  Q3
--------------------
  key1 key2   R   S
0   K0   K0  R0  S0
1   K1   K0  R1  S1
2   K1   K0  R2  S2
3   K2   K0  R3  S3

Merge two dataframes with different columns:
     P    Q    R    S key1 key2
0   P0   Q0  NaN  NaN   K0   K0
1   P1   Q1  NaN  NaN   K0   K1
2   P2   Q2  NaN  NaN   K1   K0
3   P3   Q3  NaN  NaN   K2   K1
4  NaN  NaN   R0   S0   K0   K0
5  NaN  NaN   R1   S1   K1   K0
6  NaN  NaN   R2   S2   K1   K0
7  NaN  NaN   R3   S3   K2   K0

For more Practice: Solve these Related Problems:

  • Write a Pandas program to merge two DataFrames that have different sets of columns and then fill missing columns with default values.
  • Write a Pandas program to combine two DataFrames with disparate columns using an outer join and then sort the final DataFrame by a common key.
  • Write a Pandas program to merge DataFrames with different column sets and then display the union of the columns in the output.
  • Write a Pandas program to perform a full outer merge on two DataFrames with different columns and then replace missing values with zeros.

Go to:


Previous: Write a Pandas program to combine the columns of two potentially differently-indexed DataFrames into a single result DataFrame.
Next: Write a Pandas program to Combine two DataFrame objects by filling null values in one DataFrame with non-null values from other DataFrame.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.