Pandas has a function, melt
, which can be thought of as the opposite of pivot
. It takes a table with multiple columns and converts it into a table where the column and value are represented as rows.
For example, if suppose we have the table
import pandas as pd df = pd.DataFrame({'a': [1, 2], 'b': [5, 6], 'c': [9, 10]})
a | b | c | |
---|---|---|---|
1 | 1 | 5 | 9 |
2 | 2 | 6 | 10 |
Then melt
can be used to convert it to a table like
variable | value | |
---|---|---|
1 | a | 1 |
2 | a | 2 |
3 | b | 5 |
4 | b | 6 |
5 | c | 9 |
6 | c | 10 |
Task: Write a function, melter(df)
which takes in the DataFrame, df
and melts all the columns into rows. The resulting table should have two columns, variable
and value
.
df = pd.DataFrame({'a': [1, 2], 'b': [5, 6], 'c': [9, 10]})
a | b | c | |
---|---|---|---|
0 | 1 | 5 | 9 |
1 | 2 | 6 | 10 |
variable | value | |
---|---|---|
0 | a | 1 |
1 | a | 2 |
2 | b | 5 |
3 | b | 6 |
4 | c | 9 |
5 | c | 10 |