8.4 C
London
Friday, December 20, 2024
HomePandas in PythonGeneral Functions in PythonHow to Do an Inner Join in Pandas (With Example)

How to Do an Inner 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 an inner join in pandas:

import pandas as pd

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

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

Example: How to Do Inner 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 an inner join, which only keeps the rows where the team name appears in both DataFrames:

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

	team	points	assists
0	A	18	4
1	B	22	9
2	C	19	14
3	D	14	13
4	G	20	10
5	H	28	8

The only rows contained in the merged DataFrame are the ones where the team name appears in both DataFrames.

Notice that two teams were dropped (teams E and F) because they didn’t appear in both DataFrames.

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='inner')

	team	points	assists
0	A	18	4
1	B	22	9
2	C	19	14
3	D	14	13
4	G	20	10
5	H	28	8

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 Do a Left Join in Pandas
How to Merge Pandas DataFrames on Multiple Columns
Pandas Join vs. Merge: What’s the Difference?

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