📖 Scenario: You are working with a small dataset of different types of information collected from a survey. You want to check the type of each data item to understand what kind of data you have.
🎯 Goal: Build a simple Python program that stores different data items in a dictionary and then checks the data type of each item.
📋 What You'll Learn
Create a dictionary with exact keys and values as specified
Create a variable to hold the keys of the dictionary
Use a for loop to iterate over the keys and check the type of each value
Print the key and its data type in each iteration
💡 Why This Matters
🌍 Real World
Checking data types is important when cleaning and preparing data for analysis to avoid errors and understand the data better.
💼 Career
Data scientists and analysts often need to verify data types to ensure correct processing and analysis in their projects.
Progress0 / 4 steps
1
Create the data dictionary
Create a dictionary called survey_data with these exact entries: 'age': 30, 'name': 'Alice', 'height': 5.5, 'is_student': False
Data Analysis Python
Hint
Use curly braces {} to create a dictionary. Separate keys and values with a colon, and separate items with commas.
2
Create a list of keys
Create a variable called keys that stores the list of keys from the survey_data dictionary using the keys() method.
Data Analysis Python
Hint
Use list() to convert the keys view to a list.
3
Check data types with a loop
Use a for loop with variable key to iterate over keys. Inside the loop, get the value from survey_data using key and create a variable value_type that stores the type of this value using the type() function.
Data Analysis Python
Hint
Use for key in keys: to loop. Use type() to find the data type.
4
Print the key and its data type
Inside the for loop, add a print() statement that shows the key and the value_type separated by a colon and a space. For example: age: <class 'int'>
Data Analysis Python
Hint
Use an f-string in print() to format the output as key: value_type.
Practice
(1/5)
1. What does the DataFrame.dtypes attribute show in a pandas DataFrame?
easy
A. The data type of each column in the DataFrame
B. The number of rows in the DataFrame
C. The summary statistics of numeric columns
D. The first five rows of the DataFrame
Solution
Step 1: Understand what dtypes means
The dtypes attribute in pandas shows the data type of each column in a DataFrame.
Step 2: Compare options with the definition
Only The data type of each column in the DataFrame ('The data type of each column in the DataFrame') correctly describes this: it shows the data type of each column.
Final Answer:
The data type of each column in the DataFrame -> Option A
Quick Check:
DataFrame.dtypes = column types [OK]
Hint: Remember: dtypes means data types per column [OK]
Common Mistakes:
Confusing dtypes with DataFrame shape
Thinking dtypes shows data values
Mixing dtypes with summary statistics
2. Which of the following is the correct way to check data types of columns in a pandas DataFrame named df?
easy
A. df.types()
B. df.dtypes
C. df.type()
D. df.get_types()
Solution
Step 1: Recall pandas syntax for data types
In pandas, dtypes is an attribute (not a method), so it is accessed without parentheses.
Step 2: Evaluate each option
df.dtypes uses df.dtypes correctly. Options A, B, and C use incorrect method names or parentheses.
Final Answer:
df.dtypes -> Option B
Quick Check:
Use attribute dtypes without parentheses [OK]
Hint: Use df.dtypes without parentheses to check types [OK]
Common Mistakes:
Adding parentheses after dtypes
Using incorrect method names
Confusing dtypes with type() function
3. Given the following code:
import pandas as pd
data = {'age': [25, 30], 'name': ['Alice', 'Bob'], 'score': [88.5, 92.0]}
df = pd.DataFrame(data)
print(df.dtypes)
What will be the output?
medium
A. age int64
name object
score float64
dtype: object
B. age float64
name object
score int64
dtype: object
C. age int32
name string
score float32
dtype: object
D. age object
name object
score object
dtype: object
Solution
Step 1: Check data types of each column in the dictionary
Column 'age' has integers (25, 30) so type is int64 by default. 'name' has strings, so type is object. 'score' has floats (88.5, 92.0), so type is float64.
Step 2: Confirm pandas default data types
Pandas uses int64 for integers, object for strings, and float64 for floats by default.
Final Answer:
age int64
name object
score float64
dtype: object -> Option A
Hint: Integers=int64, strings=object, floats=float64 in pandas [OK]
Common Mistakes:
Assuming strings have type 'string' instead of 'object'
Mixing int and float types
Confusing int32 with int64 default
4. You run this code:
import pandas as pd
data = {'A': [1, 2], 'B': ['x', 'y']}
df = pd.DataFrame(data)
print(df.dtypes())
But it gives an error. What is the problem?
medium
A. The DataFrame is empty
B. You need to import numpy first
C. The column names must be integers
D. You should use df.dtypes without parentheses
Solution
Step 1: Identify the error cause
The code uses df.dtypes() with parentheses, but dtypes is an attribute, not a method.
Step 2: Correct the syntax
Remove parentheses and use df.dtypes to get the data types without error.
Final Answer:
You should use df.dtypes without parentheses -> Option D
Quick Check:
dtypes is attribute, not method [OK]
Hint: No parentheses after dtypes attribute [OK]
Common Mistakes:
Adding parentheses after dtypes
Thinking DataFrame is empty causes error
Believing numpy import is needed for dtypes
5. You have a DataFrame df with columns: ['id', 'value', 'flag']. The flag column contains only 0 and 1 but is stored as integers. You want to convert flag to a boolean type for better memory use. Which code correctly changes the data type?
hard
A. df['flag'] = df['flag'].to_bool()
B. df['flag'] = bool(df['flag'])
C. df['flag'] = df['flag'].astype(bool)
D. df['flag'] = df['flag'].convert(bool)
Solution
Step 1: Understand how to convert column types in pandas
Use the astype() method to convert a column to a different data type.
Step 2: Check each option's validity
df['flag'] = df['flag'].astype(bool) uses astype(bool) correctly. df['flag'] = bool(df['flag']) tries to convert the whole Series to bool, which returns a single True/False, not a column. Options C and D use non-existent methods.
Final Answer:
df['flag'] = df['flag'].astype(bool) -> Option C
Quick Check:
Use astype(bool) to convert column to boolean [OK]
Hint: Use astype(bool) to convert column to boolean type [OK]
Common Mistakes:
Using bool() on entire Series instead of astype
Trying non-existent methods like to_bool()
Confusing convert() with astype()
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.