You can union Pandas DataFrames using concat:
pd.concat([df1, df2])
You may concatenate additional DataFrames by adding them within the brackets.
Steps to Union Pandas DataFrames using Concat
Step 1: Create the first DataFrame
For example, let’s say that you have the following DataFrame about products:
import pandas as pd data1 = { "product": ["computer", "tablet", "monitor", "printer"], "brand": ["AA", "BB", "CC", "DD"], "price": [1200, 350, 500, 150], } df1 = pd.DataFrame(data1) print(df1)
Run the code in Python and you’ll get:
product brand price
0 computer AA 1200
1 tablet BB 350
2 monitor CC 500
3 printer DD 150
Step 2: Create the second DataFrame
Next, create the second DataFrame with data about additional products:
import pandas as pd data2 = { "product": ["keyboard", "mouse", "speakers", "scanner"], "brand": ["EE", "FF", "GG", "HH"], "price": [120, 50, 200, 180], } df2 = pd.DataFrame(data2) print(df2)
Run the code, and you’ll see:
product brand price
0 keyboard EE 120
1 mouse FF 50
2 speakers GG 200
3 scanner HH 180
Step 3: Union Pandas DataFrames using Concat
Finally, to union the two Pandas DataFrames together, you may use:
pd.concat([df1, df2])
Here is the complete Python code to union the Pandas DataFrames using concat (note that you’ll need to keep the same column names across all the DataFrames to avoid any NaN values):
import pandas as pd data1 = { "product": ["computer", "tablet", "monitor", "printer"], "brand": ["AA", "BB", "CC", "DD"], "price": [1200, 350, 500, 150], } df1 = pd.DataFrame(data1) data2 = { "product": ["keyboard", "mouse", "speakers", "scanner"], "brand": ["EE", "FF", "GG", "HH"], "price": [120, 50, 200, 180], } df2 = pd.DataFrame(data2) union_dfs = pd.concat([df1, df2]) print(union_dfs)
Once you run the code, you’ll get the concatenated DataFrames:
product brand price
0 computer AA 1200
1 tablet BB 350
2 monitor CC 500
3 printer DD 150
0 keyboard EE 120
1 mouse FF 50
2 speakers GG 200
3 scanner HH 180
Notice that the index values keep repeating themselves (from 0 to 3 for the first DataFrame, and then from 0 to 3 for the second DataFrame):
product brand price
0 computer AA 1200
1 tablet BB 350
2 monitor CC 500
3 printer DD 150
0 keyboard EE 120
1 mouse FF 50
2 speakers GG 200
3 scanner HH 180
You may then assign the index values in an incremental manner once you concatenated the two DataFrames.
To do so, simply set ignore_index=True within the pd.concat brackets:
import pandas as pd data1 = { "product": ["computer", "tablet", "monitor", "printer"], "brand": ["AA", "BB", "CC", "DD"], "price": [1200, 350, 500, 150], } df1 = pd.DataFrame(data1) data2 = { "product": ["keyboard", "mouse", "speakers", "scanner"], "brand": ["EE", "FF", "GG", "HH"], "price": [120, 50, 200, 180], } df2 = pd.DataFrame(data2) union_dfs = pd.concat([df1, df2], ignore_index=True) print(union_dfs)
And the result:
product brand price
0 computer AA 1200
1 tablet BB 350
2 monitor CC 500
3 printer DD 150
4 keyboard EE 120
5 mouse FF 50
6 speakers GG 200
7 scanner HH 180
For additional information about concatenating DataFrames, please visit the pandas.concat documentation.
You may also want to check the following guide that explains how to concatenate column values using Pandas.