📖 Scenario: You are working with two small tables representing employees and their departments in a company. You want to combine these tables to see all departments and the employees assigned to them, including departments that currently have no employees.
🎯 Goal: Build a pandas DataFrame merge using a right join to combine employee and department data, showing all departments and matching employees.
📋 What You'll Learn
Create a pandas DataFrame called employees with columns EmployeeID, Name, and DeptID using the exact data provided.
Create a pandas DataFrame called departments with columns DeptID and DeptName using the exact data provided.
Create a variable called how_join and set it to the string 'right' to specify the join type.
Use the pandas merge function to join employees and departments on the DeptID column using the how_join variable.
Store the result in a variable called right_joined.
💡 Why This Matters
🌍 Real World
Right joins are useful when you want to keep all records from a reference table (like departments) and add matching data from another table (like employees), even if some departments have no employees yet.
💼 Career
Data analysts and data scientists often use right joins to combine datasets for reporting and analysis, ensuring no important reference data is lost.
Progress0 / 4 steps
1
Create the employees DataFrame
Create a pandas DataFrame called employees with these exact rows and columns: EmployeeID with values 1, 2, 3; Name with values 'Alice', 'Bob', 'Charlie'; and DeptID with values 10, 20, 30.
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of column data.
2
Create the departments DataFrame
Create a pandas DataFrame called departments with these exact rows and columns: DeptID with values 10, 20, 30, 40; and DeptName with values 'HR', 'Finance', 'IT', 'Marketing'.
Pandas
Hint
Use pd.DataFrame with a dictionary for the departments data.
3
Set the join type variable how_join
Create a variable called how_join and set it to the string 'right' to specify the type of join for merging.
Pandas
Hint
Assign the string 'right' to the variable how_join.
4
Perform the right join merge
Use the pandas merge function to join employees and departments on the DeptID column using the how_join variable. Store the result in a variable called right_joined.
Pandas
Hint
Use pd.merge() with on='DeptID' and how=how_join.
Practice
(1/5)
1. What does a right join do in pandas merge operation?
easy
A. Keeps only rows that match in both dataframes.
B. Keeps all rows from the left dataframe and matches from the right.
C. Keeps all rows from the right dataframe and matches from the left.
D. Keeps all rows from both dataframes, filling missing with NaN.
Solution
Step 1: Understand the join direction
A right join keeps all rows from the right dataframe regardless of matches.
Step 2: Understand matching behavior
It adds matching rows from the left dataframe where possible; unmatched left rows become NaN.
Final Answer:
Keeps all rows from the right dataframe and matches from the left. -> Option C
Quick Check:
Right join = all right rows kept [OK]
Hint: Right join keeps all right rows, fills left missing with NaN [OK]
Common Mistakes:
Confusing right join with left join
Thinking right join keeps all left rows
Assuming only matching rows are kept
2. Which of the following is the correct syntax to perform a right join on two pandas DataFrames df1 and df2 using column 'key'?
easy
A. df1.merge(df2, how='inner', on='key')
B. pd.merge(df1, df2, how='left', on='key')
C. df1.join(df2, how='right', on='key')
D. pd.merge(df1, df2, how='right', on='key')
Solution
Step 1: Identify correct merge function and parameters
Use pd.merge() with how='right' and on='key' to join on the key column.
Step 2: Check other options for correctness
pd.merge(df1, df2, how='left', on='key') uses left join, df1.join(df2, how='right', on='key') uses join method incorrectly with on parameter, pd.merge(df1, df2, how='inner', on='key') uses inner join.
Final Answer:
pd.merge(df1, df2, how='right', on='key') -> Option D
Quick Check:
Right join syntax = pd.merge(..., how='right', on=...) [OK]
Hint: Use pd.merge with how='right' and on='key' for right join [OK]
Common Mistakes:
Using left join instead of right join
Using DataFrame.join with on parameter (not supported)
You want to keep all rows from df2 and add matching val1 from df1. Then fill missing val1 with 0 instead of NaN. Which code achieves this using a right join?
hard
A. pd.merge(df2, df1, how='right', on='key').fillna({'val1': 0})
B. pd.merge(df1, df2, how='right', on='key').fillna({'val1': 0})
C. pd.merge(df1, df2, how='left', on='key').fillna({'val1': 0})
D. pd.merge(df2, df1, how='left', on='key').fillna({'val1': 0})
Solution
Step 1: Determine which dataframe is right
To keep all rows from df2, df2 must be the right dataframe in merge.
Step 2: Use right join and fill missing val1
Use how='right' with on='key' and then fill NaN in val1 with 0.
Final Answer:
pd.merge(df1, df2, how='right', on='key').fillna({'val1': 0}) -> Option B
Quick Check:
Right join with df2 right, fillna val1=0 [OK]
Hint: Right join with df2 right, then fillna val1 with 0 [OK]
Common Mistakes:
Swapping left and right dataframes incorrectly
Using left join instead of right join
Filling NaN before merge
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.