📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Pandas Merging and Joining

Merging and Joining

5 min read Quiz at the end
Merge DataFrames like SQL JOINs with inner, left, right, outer, and concat for stacking rows.

Merging DataFrames

import pandas as pd

users  = pd.DataFrame({'id':[1,2,3], 'name':['Alice','Bob','Carol']})
orders = pd.DataFrame({'user_id':[1,1,2], 'total':[50,30,80]})

# Merge (like SQL JOIN)
pd.merge(users, orders, left_on='id', right_on='user_id')          # INNER
pd.merge(users, orders, left_on='id', right_on='user_id', how='left')  # LEFT
pd.merge(users, orders, left_on='id', right_on='user_id', how='right') # RIGHT
pd.merge(users, orders, left_on='id', right_on='user_id', how='outer') # FULL

# Join on index
df1.join(df2, how='left')

# Concat (stack rows or columns)
pd.concat([df1, df2])              # stack rows (UNION)
pd.concat([df1, df2], axis=1)      # side by side
pd.concat([df1, df2], ignore_index=True)  # reset index
Topic Quiz · 1 questions

Test your understanding before moving on

1. Which merge how argument is equivalent to SQL LEFT JOIN?
💡 how='left' returns all rows from the left DataFrame and matching rows from the right.