Wide has one row per "thing" and many columns:
region Q1 Q2 Q3 Q4
North 1200 1500 1300 1700
South 900 1100 1050 950
Long has one row per observation:
region quarter amount
North Q1 1200
North Q2 1500
North Q3 1300
North Q4 1700
South Q1 900
...
Long is friendlier for grouping/plotting; wide is friendlier for humans.
long = df.melt(id_vars="region",
value_vars=["Q1","Q2","Q3","Q4"],
var_name="quarter",
value_name="amount")
wide = long.pivot(index="region", columns="quarter", values="amount")
melt() turns wide to long.pivot() turns long to wide.Take a wide DataFrame of quarterly figures by region. Melt it into long form. Then pivot it back.