Home > Backend Development > Python Tutorial > How Can Pandas' `melt` Function Reshape Data with Date Columns into Rows?

How Can Pandas' `melt` Function Reshape Data with Date Columns into Rows?

Mary-Kate Olsen
Release: 2024-12-30 11:02:14
Original
490 people have browsed it

How Can Pandas' `melt` Function Reshape Data with Date Columns into Rows?

Convert Columns into Rows with Pandas

When tabular data contains dates as column headers, converting those columns into rows with corresponding values can be a valuable task. To achieve this transformation, Python's Pandas library offers a convenient solution.

Problem

The provided dataset exhibits a structure where information is grouped by location for various dates, each represented by a distinct column header. The goal is to reshape this data into a format where each row represents a location, date, and associated value.

Solution

To convert the columns into rows, Pandas provides the melt function. This function allows us to specify which columns should serve as column headers and which should serve as row headers. In this context, name and location are set as row headers, and the date headers are melted into a single Date column, while their values become the Value column.

df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")
Copy after login

The resulting DataFrame will be similar to the expected output:

  location  name        Date  Value
0        A  "test"    Jan-2010     12
1        B   "foo"    Jan-2010     18
2        A  "test"    Feb-2010     20
3        B   "foo"    Feb-2010     20
4        A  "test"  March-2010     30
5        B   "foo"  March-2010     25
Copy after login

For older versions of Pandas (<0.20), a combination of pd.melt and sorting can achieve the desired result:

df2 = pd.melt(df,
                  id_vars=["location", "name"], 
                  var_name="Date",
                  value_name="Value")
df2 = df2.sort(["location", "name"])
Copy after login

The above is the detailed content of How Can Pandas' `melt` Function Reshape Data with Date Columns into Rows?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template