Home >Backend Development >Python Tutorial >How Can Pandas\' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?
When faced with complex data restructuring tasks in Pandas, the melt function emerges as a powerful tool. It seamlessly transforms dataframes from wide formats with multiple columns into long formats with fewer columns.
In a practical scenario, consider a dataframe that requires reshaping:
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year 0 2 4 7 8 1 3 2013 1 9 2 4 5 5 6 2014
To transform this dataframe into a more structured format, you can employ the melt function:
m = pd.melt(df, id_vars=['Year'], var_name='Name')
This operation generates the following dataframe:
Year Name value 0 2013 Amy 2 1 2014 Amy 9 2 2013 Bob 4 3 2014 Bob 2 4 2013 Carl 7 ...
However, the desired output includes an additional column named "Group." To obtain this, reshape the dictionary:
d2 = {} for k, v in d.items(): for item in v: d2[item] = k
The dataframe can now be updated with the "Group" column:
m['Group'] = m['Name'].map(d2)
Finally, move 'Other' from the 'Name' column to the 'Group' column:
mask = m['Name'] == 'Other' m.loc[mask, 'Name'] = '' m.loc[mask, 'Group'] = 'Other'
The resulting dataframe aligns perfectly with the desired output:
Year Name value Group 0 2013 Amy 2 A 1 2014 Amy 9 A 2 2013 Bob 4 B 3 2014 Bob 2 B 4 2013 Carl 7 C ...
In this manner, the Pandas melt function empowers data scientists with a versatile and efficient mechanism for reshaping dataframes, enabling them to effortlessly transform and reorganize data for various analytical and visualization purposes.
The above is the detailed content of How Can Pandas\' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?. For more information, please follow other related articles on the PHP Chinese website!