A. Columns: ['level_0', 'level_1', 'Value'] with rows [('A', 1, 10), ('A', 2, 20), ('B', 1, 30)]
B. Columns: ['Value'] with index [('A', 1), ('A', 2), ('B', 1)]
C. Columns: ['level_0', 'Value'] with rows [('A', 10), ('A', 20), ('B', 30)]
D. Columns: ['level_1', 'Value'] with rows [(1, 10), (2, 20), (1, 30)]
Solution
Step 1: Understand MultiIndex and reset_index()
The MultiIndex has two levels named by default 'level_0' and 'level_1'. Resetting moves these to columns.
Step 2: Check resulting DataFrame columns and rows
After reset, columns are ['level_0', 'level_1', 'Value'] with rows [('A', 1, 10), ('A', 2, 20), ('B', 1, 30)].
Final Answer:
Columns: ['level_0', 'level_1', 'Value'] with rows [('A', 1, 10), ('A', 2, 20), ('B', 1, 30)] -> Option A
Quick Check:
reset_index moves all index levels to columns [OK]
Hint: reset_index adds all index levels as columns by default [OK]
Common Mistakes:
Expecting index to remain after reset
Missing one of the index levels as column
Confusing which columns appear after reset
4. You run the code:
df.reset_index(level='wrong_level')
and get an error. What is the most likely cause?
medium
A. You must use drop=True with level parameter
B. reset_index does not accept level parameter
C. reset_index only works on single-level indexes
D. The specified level 'wrong_level' does not exist in the MultiIndex
Solution
Step 1: Understand level parameter in reset_index()
The level parameter specifies which index level(s) to reset by name or position.
Step 2: Identify error cause
If the level name does not exist in the MultiIndex, pandas raises a KeyError.
Final Answer:
The specified level 'wrong_level' does not exist in the MultiIndex -> Option D
Quick Check:
Invalid level name causes error [OK]
Hint: Check index level names before using level parameter [OK]
Common Mistakes:
Assuming any string works as level name
Forgetting to check MultiIndex names
Thinking drop=True fixes level name errors
5. You have a DataFrame df with a MultiIndex of three levels: 'Year', 'Month', 'Day'. You want to reset only 'Month' and 'Day' to columns but keep 'Year' as the index. Which code correctly does this?
hard
A. df.reset_index(level='Year')
B. df.reset_index(level=['Month', 'Day'])
C. df.reset_index(drop=True)
D. df.reset_index(level=['Year', 'Month', 'Day'])
Solution
Step 1: Identify which levels to reset
You want to reset 'Month' and 'Day' only, keeping 'Year' as index.
Step 2: Use reset_index with level parameter
Passing level=['Month', 'Day'] resets those two levels to columns, leaving 'Year' as index.
Step 3: Check other options
df.reset_index(level='Year') resets 'Year' only, C drops all index levels, D resets all three levels.
Final Answer:
df.reset_index(level=['Month', 'Day']) -> Option B
Quick Check:
Reset specific levels with level parameter [OK]
Hint: Use level list to reset specific MultiIndex levels [OK]
Common Mistakes:
Resetting wrong levels by name
Using drop=True which removes columns
Resetting all levels unintentionally
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.