4 C
London
Friday, December 20, 2024
HomePandas in PythonGeneral Functions in PythonHow to Do a Left Join in Pandas (With Example)

How to Do a Left Join in Pandas (With Example)

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

You can use the following basic syntax to perform a left join in pandas:

import pandas as pd

df1.merge(df2, on='column_name', how='left')

The following example shows how to use this syntax in practice.

Example: How to Do Left Join in Pandas

Suppose we have the following two pandas DataFrames that contains information about various basketball teams:

import pandas as pd

#create DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    'points': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'G', 'H'],
                    'assists': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print(df1)

  team  points
0    A      18
1    B      22
2    C      19
3    D      14
4    E      14
5    F      11
6    G      20
7    H      28

print(df2)

  team  assists
0    A        4
1    B        9
2    C       14
3    D       13
4    G       10
5    H        8

We can use the following code to perform a left join, keeping all of the rows from the first DataFrame and adding any columns that match based on the team column in the second DataFrame:

#perform left join
df1.merge(df2, on='team', how='left')

        team	points	assists
0	A	18	4.0
1	B	22	9.0
2	C	19	14.0
3	D	14	13.0
4	E	14	NaN
5	F	11	NaN
6	G	20	10.0
7	H	28	8.0

Every team from the left DataFrame (df1) is returned in the merged DataFrame and only the rows in the right DataFrame (df2) that match a team name in the left DataFrame are returned.

Notice that the two teams in df2 (teams E and F) that do not match a team name in df1 simply return a NaN value in the assists column of the merged DataFrame.

Note that you can also use pd.merge() with the following syntax to return the exact same result:

#perform left join
pd.merge(df1, df2, on='team', how='left')


        team	points	assists
0	A	18	4.0
1	B	22	9.0
2	C	19	14.0
3	D	14	13.0
4	E	14	NaN
5	F	11	NaN
6	G	20	10.0
7	H	28	8.0

Notice that this merged DataFrame matches the one from the previous example.

Note: You can find the complete documentation for the merge function here.

Additional Resources

The following tutorials explain how to perform other common operations in pandas:

How to Perform an Anti-Join in Pandas
How to Perform an Inner Join in Pandas
How to Perform a Cross Join in Pandas

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories