Bird
Raised Fist0
Pandasdata~10 mins

columns and index attributes 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 get the column names of the DataFrame.

Pandas
column_names = df.[1]
Drag options to blanks, or click blank then click option'
Akeys
Bindex
Cvalues
Dcolumns
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'index' instead of 'columns' to get column names.
Trying to use a method instead of an attribute.
2fill in blank
medium

Complete the code to get the index labels of the DataFrame.

Pandas
row_labels = df.[1]
Drag options to blanks, or click blank then click option'
Aindex
Baxes
Ccolumns
Dkeys
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'columns' when trying to get row labels.
Using methods like keys() which do not return index labels.
3fill in blank
hard

Fix the error in the code to access the DataFrame's columns attribute correctly.

Pandas
cols = df.[1]()
Drag options to blanks, or click blank then click option'
Avalues
Bindex
Ccolumns
Dkeys
Attempts:
3 left
💡 Hint
Common Mistakes
Adding parentheses after columns causing a TypeError.
Confusing attributes with methods.
4fill in blank
hard

Fill both blanks to get the index and columns of the DataFrame as a tuple.

Pandas
info = (df.[1], df.[2])
Drag options to blanks, or click blank then click option'
Aindex
Bvalues
Ccolumns
Dkeys
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping index and columns in the tuple.
Using values or keys which do not return labels.
5fill in blank
hard

Fill all three blanks to create a dictionary with keys as column names and values as index labels.

Pandas
mapping = {col: df.[1][[2]] for col in df.[3]
Drag options to blanks, or click blank then click option'
Aindex
B0
Ccolumns
Dvalues
Attempts:
3 left
💡 Hint
Common Mistakes
Using values instead of index for row labels.
Using string '0' instead of integer 0 for indexing.
Swapping columns and index.

Practice

(1/5)
1. What does the columns attribute in a pandas DataFrame represent?
easy
A. The number of rows in the DataFrame
B. The data types of each column
C. The names of the columns in the DataFrame
D. The values of the first row

Solution

  1. Step 1: Understand the role of columns in pandas

    The columns attribute stores the labels for each column in the DataFrame, like the headers in a table.
  2. Step 2: Compare with other attributes

    Other attributes like index store row labels, not column names.
  3. Final Answer:

    The names of the columns in the DataFrame -> Option C
  4. Quick Check:

    columns = column names [OK]
Hint: Columns attribute holds column names, like table headers [OK]
Common Mistakes:
  • Confusing columns with index
  • Thinking columns store data types
  • Assuming columns count rows
2. Which of the following is the correct way to get the row labels of a pandas DataFrame df?
easy
A. df.index
B. df.columns
C. df.labels
D. df.rows

Solution

  1. Step 1: Recall the attribute for row labels

    The index attribute in pandas stores the row labels or indices.
  2. Step 2: Verify other options

    columns is for column names; labels and rows are not valid pandas attributes.
  3. Final Answer:

    df.index -> Option A
  4. Quick Check:

    index = row labels [OK]
Hint: Use df.index to get row labels, not df.columns [OK]
Common Mistakes:
  • Using df.columns to get row labels
  • Trying non-existent attributes like df.labels
  • Confusing rows with index attribute
3. Given the DataFrame df below:
import pandas as pd
df = pd.DataFrame({
  'A': [1, 2],
  'B': [3, 4]
}, index=['x', 'y'])
print(df.columns)

What will be the output?
medium
A. Index(['A', 'B'], dtype='object')
B. Index(['x', 'y'], dtype='object')
C. ['x', 'y']
D. ['A', 'B']

Solution

  1. Step 1: Understand the DataFrame creation

    The DataFrame has columns 'A' and 'B' and row indices 'x' and 'y'.
  2. Step 2: Check what df.columns returns

    df.columns returns an Index object listing the column names, which are 'A' and 'B'.
  3. Final Answer:

    Index(['A', 'B'], dtype='object') -> Option A
  4. Quick Check:

    df.columns = Index of column names [OK]
Hint: df.columns shows column names as Index object [OK]
Common Mistakes:
  • Confusing columns with index values
  • Expecting a list instead of Index object
  • Mixing up row labels with columns
4. What is wrong with this code snippet?
import pandas as pd
df = pd.DataFrame({'X': [10, 20], 'Y': [30, 40]})
df.index = ['a', 'b', 'c']
medium
A. The DataFrame must have numeric index only
B. DataFrame columns cannot be renamed this way
C. The code is correct and runs without error
D. The index list length does not match the number of rows

Solution

  1. Step 1: Check DataFrame shape

    The DataFrame has 2 rows but the new index list has 3 labels.
  2. Step 2: Understand index assignment rules

    When assigning to df.index, the length must match the number of rows exactly.
  3. Final Answer:

    The index list length does not match the number of rows -> Option D
  4. Quick Check:

    Index length must equal row count [OK]
Hint: Index length must match rows count exactly [OK]
Common Mistakes:
  • Assigning index list with wrong length
  • Thinking columns rename affects index
  • Assuming any list can be index regardless of length
5. You have a DataFrame df with columns ['name', 'age', 'city'] and default numeric index. How do you rename the columns to ['Name', 'Age', 'City'] and set the index to the 'name' column in one step?
hard
A. df.columns = ['Name', 'Age', 'City']; df.set_index('name', inplace=True)
B. df.rename(columns={'name':'Name', 'age':'Age', 'city':'City'}, inplace=True); df.set_index('Name', inplace=True)
C. df.columns = ['Name', 'Age', 'City']; df.index = df['Name']
D. df.rename(index={'name':'Name'}, inplace=True); df.columns = ['Name', 'Age', 'City']

Solution

  1. Step 1: Rename columns properly

    Use df.rename(columns=..., inplace=True) to rename columns safely without losing data.
  2. Step 2: Set the index to the renamed 'Name' column

    Use df.set_index('Name', inplace=True) to set the index to the 'Name' column after renaming.
  3. Final Answer:

    df.rename(columns={'name':'Name', 'age':'Age', 'city':'City'}, inplace=True); df.set_index('Name', inplace=True) -> Option B
  4. Quick Check:

    Rename columns then set index by column name [OK]
Hint: Rename columns with rename(), then set_index() by new name [OK]
Common Mistakes:
  • Assigning columns list directly without rename()
  • Setting index before renaming columns
  • Assigning index to a Series without set_index()
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