Bird
Raised Fist0
Pandasdata~10 mins

Long to wide format conversion in Pandas - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to convert the DataFrame from long to wide format using pivot.

Pandas
wide_df = long_df.pivot(index='[1]', columns='variable', values='value')
Drag options to blanks, or click blank then click option'
Aid
Bvalue
Cvariable
Dindex
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'value' as index instead of 'id'.
Using 'variable' as index which is actually the column to spread.
2fill in blank
medium

Complete the code to reset the index of the wide DataFrame to turn the index back into a column.

Pandas
wide_df = wide_df.[1]()
Drag options to blanks, or click blank then click option'
Areset_index
Bset_index
Cdrop
Dmelt
Attempts:
3 left
💡 Hint
Common Mistakes
Using set_index() which does the opposite.
Using drop() which removes columns.
3fill in blank
hard

Fix the error in the code to pivot the DataFrame when there are duplicate entries for the index and columns combination.

Pandas
wide_df = long_df.pivot_table(index='id', columns='[1]', values='value', aggfunc='mean')
Drag options to blanks, or click blank then click option'
Aaggfunc
Bvariable
Cid
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'value' as columns which is incorrect.
Using 'id' as columns which is the index.
4fill in blank
hard

Fill both blanks to create a wide DataFrame with 'date' as index and 'category' as columns, aggregating values by sum.

Pandas
wide_df = df.pivot_table(index='[1]', columns='[2]', values='sales', aggfunc='sum')
Drag options to blanks, or click blank then click option'
Adate
Bcategory
Cregion
Dproduct
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping index and columns values.
Using columns that are not categorical.
5fill in blank
hard

Fill all three blanks to create a dictionary of average scores by student and subject from a long DataFrame.

Pandas
result = df.pivot_table(index='[1]', columns='[2]', values='[3]', aggfunc='mean').to_dict('index')
Drag options to blanks, or click blank then click option'
Astudent
Bsubject
Cscore
Dgrade
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'grade' instead of 'score' for values.
Mixing up student and subject keys.

Practice

(1/5)
1. What does converting data from long to wide format using pivot in pandas mainly achieve?
easy
A. It removes duplicate rows from the dataset.
B. It sorts the data alphabetically by column names.
C. It turns row values into columns to compare data side by side.
D. It aggregates data by summing all values.

Solution

  1. Step 1: Understand long vs wide format

    Long format has repeated rows for categories; wide format spreads categories into columns.
  2. Step 2: Role of pivot in pandas

    Pivot reshapes data by turning unique row values into columns for side-by-side comparison.
  3. Final Answer:

    It turns row values into columns to compare data side by side. -> Option C
  4. Quick Check:

    Long to wide = row values become columns [OK]
Hint: Pivot turns row values into columns for easy comparison [OK]
Common Mistakes:
  • Thinking pivot sorts data alphabetically
  • Confusing pivot with aggregation functions
  • Assuming pivot removes duplicates automatically
2. Which of the following is the correct syntax to convert a DataFrame df from long to wide format using pivot with index='Date', columns='City', and values='Temperature'?
easy
A. df.pivot(columns='Date', index='City', values='Temperature')
B. df.pivot(index='Date', columns='City', values='Temperature')
C. df.pivot(index='Temperature', columns='Date', values='City')
D. df.pivot(values='Date', index='City', columns='Temperature')

Solution

  1. Step 1: Identify correct parameter order

    Pivot requires index (rows), columns, and values parameters in any order but with correct names.
  2. Step 2: Match parameters to data roles

    Index='Date' means rows by date, columns='City' means columns by city, values='Temperature' fills data.
  3. Final Answer:

    df.pivot(index='Date', columns='City', values='Temperature') -> Option B
  4. Quick Check:

    Correct pivot syntax = df.pivot(index='Date', columns='City', values='Temperature') [OK]
Hint: Use pivot(index=rows, columns=cols, values=data) [OK]
Common Mistakes:
  • Swapping index and columns parameters
  • Using wrong column names in parameters
  • Passing parameters in wrong order causing errors
3. Given the DataFrame df below:
   Date    City  Temperature
0  2023-01-01  NY     30
1  2023-01-01  LA     60
2  2023-01-02  NY     28
3  2023-01-02  LA     62

What is the output of df.pivot(index='Date', columns='City', values='Temperature')?
medium
A. City LA NY Date 2023-01-01 60 30 2023-01-02 62 28
B. City NY LA Date 2023-01-01 30 60 2023-01-02 28 62
C. Date 2023-01-01 2023-01-02 City LA 60 62 NY 30 28
D. City LA NY Date 2023-01-01 30 60 2023-01-02 28 62

Solution

  1. Step 1: Understand pivot parameters

    Index='Date' means rows are dates; columns='City' means columns are cities; values='Temperature' fills data.
  2. Step 2: Arrange data accordingly

    For 2023-01-01, LA=60, NY=30; for 2023-01-02, LA=62, NY=28; columns sorted alphabetically by default.
  3. Final Answer:

    City LA NY Date 2023-01-01 60 30 2023-01-02 62 28 -> Option A
  4. Quick Check:

    Pivot output matches City LA NY Date 2023-01-01 60 30 2023-01-02 62 28 [OK]
Hint: Pivot columns sorted alphabetically by default [OK]
Common Mistakes:
  • Mixing up row and column labels
  • Assuming city order is NY then LA
  • Confusing index and columns roles
4. You try to run df.pivot(index='Date', columns='City', values='Temperature') but get a ValueError: "Index contains duplicate entries, cannot reshape". What is the most likely cause?
medium
A. The columns parameter should be a list, not a string.
B. The DataFrame is missing the Temperature column.
C. The pivot function requires numeric index values only.
D. The DataFrame has multiple rows with the same Date and City combination.

Solution

  1. Step 1: Understand pivot restrictions

    Pivot requires unique pairs of index and columns to create a single value cell.
  2. Step 2: Identify cause of duplicate error

    If multiple rows share the same Date and City, pivot cannot decide which value to use, causing the error.
  3. Final Answer:

    The DataFrame has multiple rows with the same Date and City combination. -> Option D
  4. Quick Check:

    Duplicate index-column pairs cause ValueError [OK]
Hint: Check for duplicate index-column pairs before pivot [OK]
Common Mistakes:
  • Assuming missing columns cause this error
  • Thinking pivot needs numeric index only
  • Believing columns param must be a list
5. You have a DataFrame df with columns ['Date', 'City', 'Measurement', 'Value'] where Measurement can be 'Temperature' or 'Humidity'. How do you convert this long format into a wide format with Date as index and separate columns for each City and Measurement combination showing Value?
hard
A. Use df.pivot(index='Date', columns=['City', 'Measurement'], values='Value')
B. Use df.pivot(index=['Date', 'City'], columns='Measurement', values='Value')
C. Use df.pivot(index='Measurement', columns=['Date', 'City'], values='Value')
D. Use df.pivot(index='Date', columns='Value', values=['City', 'Measurement'])

Solution

  1. Step 1: Understand multi-level columns in pivot

    Pivot allows multiple columns by passing a list to the columns parameter to create hierarchical columns.
  2. Step 2: Apply correct parameters

    Index='Date' sets rows, columns=['City', 'Measurement'] creates multi-level columns, values='Value' fills data.
  3. Final Answer:

    Use df.pivot(index='Date', columns=['City', 'Measurement'], values='Value') -> Option A
  4. Quick Check:

    Multi-index columns = Use df.pivot(index='Date', columns=['City', 'Measurement'], values='Value') [OK]
Hint: Pass list to columns for multi-level wide format [OK]
Common Mistakes:
  • Passing multiple columns to index instead of columns
  • Swapping values and columns parameters
  • Using wrong columns for values parameter
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard