Melt a wide table to long table

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.

Example Input

Code to generate input

df = pd.DataFrame({'a': [1, 2], 'b': [5, 6], 'c': [9, 10]})


Table generated

a b c
0 1 5 9
1 2 6 10

Example Output

variable value
0 a 1
1 a 2
2 b 5
3 b 6
4 c 9
5 c 10