Home >Backend Development >Python Tutorial >How Can Pandas\' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

How Can Pandas\' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 08:40:12938browse

How Can Pandas' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

Pandas Melt Function for Data Transformation

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn