📖 Scenario: You work in a company that collects customer feedback. The feedback includes a column with customer satisfaction levels as words like 'Low', 'Medium', and 'High'. You want to convert these words into numbers so a computer can understand and analyze them easily.
🎯 Goal: Learn how to convert categorical text data into numbers using label encoding in Python. You will create a list of satisfaction levels, set up a label encoder, apply it to the data, and print the encoded results.
📋 What You'll Learn
Create a list of categorical data with exact values
Create a label encoder object
Use the label encoder to transform the list
Print the encoded numeric values
💡 Why This Matters
🌍 Real World
Label encoding is used in data science to convert words or categories into numbers so computers can analyze data like customer feedback, survey answers, or product categories.
💼 Career
Data analysts and data scientists often need to prepare data by encoding categories before building machine learning models or performing statistical analysis.
Progress0 / 4 steps
1
Create the list of satisfaction levels
Create a list called satisfaction_levels with these exact values: 'Low', 'Medium', 'High', 'Medium', 'Low'.
Data Analysis Python
Hint
Use square brackets to create a list and separate values with commas.
2
Import and create the label encoder
Import LabelEncoder from sklearn.preprocessing and create a variable called encoder that is an instance of LabelEncoder().
Data Analysis Python
Hint
Use from sklearn.preprocessing import LabelEncoder to import.
3
Apply label encoding to the list
Use the encoder variable to fit and transform the satisfaction_levels list into numeric labels. Store the result in a variable called encoded_labels.
Data Analysis Python
Hint
Use fit_transform() method on the encoder with the list as input.
4
Print the encoded numeric labels
Print the variable encoded_labels to display the numeric values of the satisfaction levels.
Data Analysis Python
Hint
Use print(encoded_labels) to show the result.
Practice
(1/5)
1. What does label encoding do in data science?
easy
A. It removes missing values from the dataset.
B. It normalizes numerical data to a 0-1 scale.
C. It converts categories into numbers for computer use.
D. It splits data into training and testing sets.
Solution
Step 1: Understand the purpose of label encoding
Label encoding changes text categories into numbers so computers can process them.
Step 2: Compare with other options
Other options describe different data tasks, not label encoding.
Final Answer:
It converts categories into numbers for computer use. -> Option C
Quick Check:
Label encoding = categories to numbers [OK]
Hint: Label encoding = categories to numbers [OK]
Common Mistakes:
Confusing label encoding with normalization
Thinking it removes missing data
Mixing it up with data splitting
2. Which of the following is the correct way to import LabelEncoder from scikit-learn in Python?
easy
A. import LabelEncoder from sklearn
B. import LabelEncoder from sklearn.preprocessing
C. from sklearn import LabelEncoder
D. from sklearn.preprocessing import LabelEncoder
Solution
Step 1: Recall correct import syntax
In Python, the correct way is 'from module import class'.
Step 2: Match with options
from sklearn.preprocessing import LabelEncoder matches 'from sklearn.preprocessing import LabelEncoder'. Others have wrong syntax.
Final Answer:
from sklearn.preprocessing import LabelEncoder -> Option D
Quick Check:
Correct import = from sklearn.preprocessing import LabelEncoder [OK]
Hint: Use 'from module import class' syntax for imports [OK]
Common Mistakes:
Using 'import class from module' which is invalid
Trying to import directly from sklearn without submodule
Confusing import order
3. What will be the output of this code?
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
categories = ['dog', 'cat', 'bird', 'cat']
encoded = le.fit_transform(categories)
print(list(encoded))
medium
A. [0, 1, 2, 1]
B. [2, 1, 0, 1]
C. [1, 0, 2, 0]
D. [1, 2, 0, 2]
Solution
Step 1: Understand label encoding order
LabelEncoder assigns numbers based on alphabetical order: 'bird' = 0, 'cat' = 1, 'dog' = 2.
Hint: LabelEncoder assigns numbers alphabetically starting at 0 [OK]
Common Mistakes:
Assuming encoding starts at 1 instead of 0
Ignoring alphabetical order
Mixing up category positions
4. Identify the error in this code snippet:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
categories = ['apple', 'banana', 'apple']
encoded = le.transform(categories)
print(encoded)
medium
A. LabelEncoder must be fitted before transform is called.
B. The list 'categories' contains duplicates which is not allowed.
C. LabelEncoder cannot encode strings, only numbers.
D. The print statement syntax is incorrect.
Solution
Step 1: Check LabelEncoder usage
LabelEncoder requires calling fit() or fit_transform() before transform().
Step 2: Identify missing fit step
The code calls transform() without fitting, causing an error.
Final Answer:
LabelEncoder must be fitted before transform is called. -> Option A
Quick Check:
fit() before transform() is required [OK]
Hint: Always fit LabelEncoder before transform [OK]
Common Mistakes:
Calling transform without fitting first
Thinking duplicates cause error
Believing LabelEncoder only works on numbers
5. You have a dataset with a column 'Color' containing ['Red', 'Blue', 'Green', 'Blue', 'Red']. You want to encode it using LabelEncoder but keep track of the original categories. Which code snippet correctly fits and transforms the data and then shows the mapping from labels to original categories?
hard
A. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit_transform(colors)
mapping = dict(zip(range(len(le.classes_)), le.classes_))
print(encoded, mapping)
B. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.transform(colors)
mapping = dict(zip(range(len(le.classes_)), le.classes_))
print(encoded, mapping)
C. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit(colors)
mapping = dict(zip(le.classes_, range(len(le.classes_))))
print(encoded, mapping)
D. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit_transform(colors)
mapping = dict(zip(le.classes_, range(len(le.classes_))))
print(encoded, mapping)
Solution
Step 1: Fit and transform the data correctly
Use fit_transform() to fit and encode in one step.
Step 2: Create mapping from encoded numbers to original categories
le.classes_ holds categories sorted alphabetically; zip with range(len(le.classes_)) maps numbers to categories.
Step 3: Check each option
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit_transform(colors)
mapping = dict(zip(range(len(le.classes_)), le.classes_))
print(encoded, mapping) fits and transforms correctly and maps numbers to categories. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit_transform(colors)
mapping = dict(zip(le.classes_, range(len(le.classes_))))
print(encoded, mapping) reverses mapping. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.transform(colors)
mapping = dict(zip(range(len(le.classes_)), le.classes_))
print(encoded, mapping) calls transform without fit. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit(colors)
mapping = dict(zip(le.classes_, range(len(le.classes_))))
print(encoded, mapping) uses fit() without transform.
Final Answer:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
colors = ['Red', 'Blue', 'Green', 'Blue', 'Red']
encoded = le.fit_transform(colors)
mapping = dict(zip(range(len(le.classes_)), le.classes_))
print(encoded, mapping) -> Option A