Merging of Data Objects

In real projects, related data is often split across multiple files or tables - student details in one file, their marks in another. Merging lets you combine such DataFrames based on a common column, just like a join in SQL.

A Basic Merge

import pandas as pd

students = pd.DataFrame({
    "StudentID": [1, 2, 3],
    "Name": ["Abhay", "Priya", "Rohit"]
})

marks = pd.DataFrame({
    "StudentID": [1, 2, 3],
    "Score": [85, 92, 78]
})

merged = pd.merge(students, marks, on="StudentID")
print(merged)
#    StudentID   Name  Score
# 0          1  Abhay     85
# 1          2  Priya     92
# 2          3  Rohit     78

Merging on Differently Named Columns

merged2 = pd.merge(students, marks, left_on="StudentID", right_on="StudentID")

# If the key columns have different names:
merged3 = pd.merge(df_a, df_b, left_on="ID", right_on="StudentID")

Merging on Multiple Columns

result = pd.merge(df_a, df_b, on=["StudentID", "Year"])
pd.merge() always needs a shared key column to line rows up correctly - if a row's key doesn't exist in the other DataFrame, the merge type you choose decides whether that row is kept, dropped, or filled with NaN.

Coming Up Next

Next, you'll learn about concatenation - stacking DataFrames together instead of joining them on a key.

Ready to Master Data Science?

Join Uncodemy's Data Science Course and build real, job-ready skills with expert mentors.

Explore Course