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.

Updated on: 2026-03-26T02:41:46+05:30

843 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements