Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Python – Reshape the data in a Pandas DataFrame
Reshaping data in Pandas involves transforming data structure to make it more suitable for analysis. One common approach is categorizing text values into numerical form using the map() function with a dictionary.
Basic DataFrame Creation
First, let's create a DataFrame with student names and their results ?
import pandas as pd
# Create DataFrame with student results
dataFrame = pd.DataFrame({
"Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
"Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
})
print("Original DataFrame:")
print(dataFrame)
Original DataFrame: Student Result 0 Jack Pass 1 Robin Fail 2 Ted Fail 3 Scarlett Pass 4 Kat Pass
Reshaping Using map() Function
The map() function transforms values using a dictionary mapping. We'll convert 'Pass' to 1 and 'Fail' to 0 ?
import pandas as pd
# Create DataFrame
dataFrame = pd.DataFrame({
"Student": ['Jack', 'Robin', 'Ted', 'Scarlett', 'Kat'],
"Result": ['Pass', 'Fail', 'Fail', 'Pass', 'Pass']
})
print("Original DataFrame:")
print(dataFrame)
# Reshape data using map() function
result_mapping = {'Pass': 1, 'Fail': 0}
dataFrame['Result'] = dataFrame['Result'].map(result_mapping)
print("\nReshaped DataFrame:")
print(dataFrame)
Original DataFrame: Student Result 0 Jack Pass 1 Robin Fail 2 Ted Fail 3 Scarlett Pass 4 Kat Pass Reshaped DataFrame: Student Result 0 Jack 1 1 Robin 0 2 Ted 0 3 Scarlett 1 4 Kat 1
Alternative Approaches
You can also use replace() method for similar transformations ?
import pandas as pd
dataFrame = pd.DataFrame({
"Student": ['Jack', 'Robin', 'Ted'],
"Result": ['Pass', 'Fail', 'Pass']
})
# Using replace() method
dataFrame_replaced = dataFrame.copy()
dataFrame_replaced['Result'] = dataFrame_replaced['Result'].replace({'Pass': 1, 'Fail': 0})
print("Using replace() method:")
print(dataFrame_replaced)
Using replace() method: Student Result 0 Jack 1 1 Robin 0 2 Ted 1
Comparison
| Method | Best For | Performance |
|---|---|---|
map() |
Single column transformation | Fast for Series |
replace() |
Multiple columns or DataFrame | Good for complex patterns |
Conclusion
Use map() with a dictionary to efficiently reshape categorical data into numerical form. This transformation is essential for machine learning algorithms that require numerical input.
Advertisements
