In this post, I am going to explain how to reshape the dataframe using pivot method.
Signature
DataFrame.pivot(index=None, columns=None, values=None)’
Following table summarize the parameters of pivot method.
|
Parameter |
Description |
|
index |
Specify the column(s) to use as the new DataFrame index. |
|
columns |
The column(s) to use as the new DataFrame columns. |
|
values |
The column(s) to use as the values in the new DataFrame. |
Let’s try to experiment with below dataset.
Name Age City Gender Education 0 Krishna 34 Bangalore Male Graduate 1 Sailu 35 Hyderabad Female Post Graduate 2 Joel 29 Hyderabad Male PHD 3 Chamu 35 Chennai Female Graduate 4 Jitendra 52 Bangalore Male Graduate 5 Krishna 34 Chennai Male Intermediate
Let’s reshape the data frame by setting
a. ['Education', 'Age'] columns as index columns
b. ['City', 'Gender'] as column headers
c. ['Name'] as column values
new_df = df.pivot(index=['Education', 'Age'], columns=['City', 'Gender'], values = ['Name'])
new_df points to below data set.
Name
City Bangalore Hyderabad Chennai
Gender Male Female Male Female Male
Education Age
Graduate 34 Krishna NaN NaN NaN NaN
35 NaN NaN NaN Chamu NaN
52 Jitendra NaN NaN NaN NaN
Intermediate 34 NaN NaN NaN NaN Krishna
PHD 29 NaN NaN Joel NaN NaN
Post Graduate 35 NaN Sailu NaN NaN NaN
Find the below working application.
pivot.py
import pandas as pd
# Create a sample DataFrame
data = {'Name': ['Krishna', 'Sailu', 'Joel', 'Chamu', 'Jitendra', "Krishna"],
'Age': [34, 35, 29, 35, 52, 34],
'City': ['Bangalore', 'Hyderabad', 'Hyderabad', 'Chennai', 'Bangalore', 'Chennai'],
'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Male'],
'Education': ['Graduate', 'Post Graduate', 'PHD', 'Graduate', 'Graduate', 'Intermediate']}
df = pd.DataFrame(data)
print('Original DataFrame')
print(df)
new_df = df.pivot(index=['Education', 'Age'], columns=['City', 'Gender'], values = ['Name'])
print('\nnew_df\n',new_df)
Output
Original DataFrame
Name Age City Gender Education
0 Krishna 34 Bangalore Male Graduate
1 Sailu 35 Hyderabad Female Post Graduate
2 Joel 29 Hyderabad Male PHD
3 Chamu 35 Chennai Female Graduate
4 Jitendra 52 Bangalore Male Graduate
5 Krishna 34 Chennai Male Intermediate
new_df
Name
City Bangalore Hyderabad Chennai
Gender Male Female Male Female Male
Education Age
Graduate 34 Krishna NaN NaN NaN NaN
35 NaN NaN NaN Chamu NaN
52 Jitendra NaN NaN NaN NaN
Intermediate 34 NaN NaN NaN NaN Krishna
PHD 29 NaN NaN Joel NaN NaN
Post Graduate 35 NaN Sailu NaN NaN NaN
No comments:
Post a Comment