Bird
Raised Fist0
Pandasdata~20 mins

dtypes for column data types in Pandas - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Dtype Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this dtype check?
Given the following pandas DataFrame, what will be the output of df.dtypes?
Pandas
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [1.5, 2.5, 3.5],
    'C': ['x', 'y', 'z'],
    'D': [True, False, True]
})
print(df.dtypes)
A
A      int32
B    float64
C     object
D       bool
dtype: object
B
A      float64
B    float64
C     object
D       bool
dtype: object
C
A      int64
B    float64
C     object
D       bool
dtype: object
D
A      int64
B    float64
C     string
D       bool
dtype: object
Attempts:
2 left
💡 Hint
Check the default integer type pandas uses on your system and how strings are stored.
❓ data_output
intermediate
2:00remaining
Count columns with numeric dtypes
Using pandas, how many columns in this DataFrame have numeric data types?
Pandas
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'num1': [1, 2, 3],
    'num2': [1.1, 2.2, 3.3],
    'text': ['a', 'b', 'c'],
    'flag': [True, False, True],
    'date': pd.to_datetime(['2023-01-01', '2023-01-02', '2023-01-03'])
})
numeric_cols = df.select_dtypes(include=[np.number]).columns
print(len(numeric_cols))
A2
B3
C4
D1
Attempts:
2 left
💡 Hint
Numeric types include int and float, but not boolean or datetime.
🔧 Debug
advanced
2:00remaining
Identify the error in dtype conversion
What error will this code raise when trying to convert column 'A' to integer dtype?
Pandas
import pandas as pd

df = pd.DataFrame({'A': ['1', '2', 'three']})
df['A'] = df['A'].astype(int)
AValueError: invalid literal for int() with base 10: 'three'
BTypeError: cannot convert float NaN to integer
CKeyError: 'A'
DNo error, conversion succeeds
Attempts:
2 left
💡 Hint
Check if all strings can be converted to integers.
🚀 Application
advanced
2:00remaining
Select columns with object dtype
Given a DataFrame, which code snippet correctly selects all columns with object dtype?
Pandas
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2],
    'B': ['x', 'y'],
    'C': [3.5, 4.5],
    'D': ['foo', 'bar']
})
Adf.select_dtypes(exclude=['object'])
Bdf.select_dtypes(include=['object'])
Cdf.select_dtypes(include=['int64'])
Ddf.select_dtypes(include=['bool'])
Attempts:
2 left
💡 Hint
Object dtype usually stores strings or mixed types.
🧠 Conceptual
expert
2:00remaining
Understanding pandas dtype memory optimization
Which pandas dtype conversion reduces memory usage the most for a column of integers ranging from 0 to 127?
AConvert to 'object' dtype
BConvert to 'int64' dtype
CConvert to 'float32' dtype
DConvert to 'int8' dtype
Attempts:
2 left
💡 Hint
Consider the smallest integer dtype that can hold values 0 to 127.

Practice

(1/5)
1. What does the dtypes attribute in a pandas DataFrame tell you?
easy
A. The names of the columns
B. The number of rows in the DataFrame
C. The total memory used by the DataFrame
D. The type of data stored in each column

Solution

  1. Step 1: Understand what dtypes means

    The dtypes attribute shows the data type of each column in a DataFrame, like integer, float, or string.
  2. Step 2: Compare options with the definition

    Only the type of data stored in each column correctly describes that dtypes tells the type of data stored in each column.
  3. Final Answer:

    The type of data stored in each column -> Option D
  4. Quick Check:

    dtypes = data type per column [OK]
Hint: Remember: dtypes show column data types, not counts or names [OK]
Common Mistakes:
  • Confusing dtypes with DataFrame shape
  • Thinking dtypes shows column names
  • Assuming dtypes shows memory usage
2. Which of the following is the correct way to check the data types of columns in a pandas DataFrame named df?
easy
A. df.dtypes
B. df.types()
C. df.get_dtypes()
D. df.columns.types

Solution

  1. Step 1: Recall the correct pandas syntax

    To check column data types, pandas uses the attribute dtypes without parentheses.
  2. Step 2: Evaluate each option

    df.dtypes uses df.dtypes, which is correct. Options B and C use incorrect method names, and D is not a valid attribute.
  3. Final Answer:

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

    Use df.dtypes to check column types [OK]
Hint: Use df.dtypes without parentheses to see column types [OK]
Common Mistakes:
  • Adding parentheses after dtypes
  • Using non-existent methods like get_dtypes()
  • Confusing dtypes with columns attribute
3. Given the following code:
import pandas as pd
data = {'A': [1, 2, 3], 'B': [1.5, 2.5, 3.5], 'C': ['x', 'y', 'z']}
df = pd.DataFrame(data)
print(df.dtypes)

What will be the output?
medium
A. A object B object C object dtype: object
B. A float64 B int64 C object dtype: object
C. A int64 B float64 C object dtype: object
D. A int32 B float32 C string dtype: object

Solution

  1. Step 1: Identify data types from the data dictionary

    Column 'A' has integers (1,2,3) so type is int64 by default. Column 'B' has floats (1.5,2.5,3.5) so type is float64. Column 'C' has strings ('x','y','z') which pandas treats as object type.
  2. Step 2: Match with the printed output format

    The output shows each column name with its dtype, followed by 'dtype: object'. A int64 B float64 C object dtype: object matches this exactly.
  3. Final Answer:

    A int64 B float64 C object dtype: object -> Option C
  4. Quick Check:

    Integers=int64, floats=float64, strings=object [OK]
Hint: Integers default to int64, floats to float64, strings to object [OK]
Common Mistakes:
  • Assuming strings show as 'string' dtype
  • Confusing int32 with int64
  • Mixing float and int types
4. You run this code:
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3], 'Y': ['a', 'b', 'c']})
print(df.dtypes())

But get an error. What is the problem?
medium
A. The DataFrame is empty
B. You should use df.dtypes without parentheses
C. Column names must be integers
D. You need to import numpy first

Solution

  1. Step 1: Identify the error cause

    The code uses df.dtypes() with parentheses, but dtypes is an attribute, not a method.
  2. Step 2: Correct the syntax

    Remove the parentheses and use df.dtypes to get the data types without error.
  3. Final Answer:

    You should use df.dtypes without parentheses -> Option B
  4. Quick Check:

    dtypes is attribute, not method [OK]
Hint: Remember: dtypes has no parentheses, it's not a function [OK]
Common Mistakes:
  • Calling dtypes as a function
  • Thinking DataFrame is empty causes error
  • Believing numpy import is needed for dtypes
5. You have a DataFrame df with columns: age (integers), income (floats), and member (True/False). You want to check the data types and convert member to integer (1 for True, 0 for False). Which code correctly does this?
hard
A. print(df.dtypes) df['member'] = df['member'].astype(int)
B. print(df.types) df['member'] = int(df['member'])
C. print(df.dtypes()) df['member'] = df['member'].to_int()
D. print(df.columns) df['member'] = df['member'].astype('bool')

Solution

  1. Step 1: Check data types correctly

    Use df.dtypes (no parentheses) to print data types. Options B and C use incorrect syntax.
  2. Step 2: Convert boolean column to integer

    Use astype(int) to convert True/False to 1/0. print(df.dtypes) df['member'] = df['member'].astype(int) does this correctly. print(df.columns) df['member'] = df['member'].astype('bool') converts to bool again, which is unnecessary.
  3. Final Answer:

    print(df.dtypes) df['member'] = df['member'].astype(int) -> Option A
  4. Quick Check:

    Use df.dtypes and astype(int) for boolean to int [OK]
Hint: Use df.dtypes and astype(int) to convert booleans to 0/1 [OK]
Common Mistakes:
  • Calling dtypes as a method
  • Trying to convert column with int() directly
  • Converting boolean to bool again instead of int
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