pythonbeginner

Pandas Wide to Long (melt)

Transform a wide-format DataFrame into long format using pd.melt for analytics and visualisation.

python
import pandas as pd

df_wide = pd.DataFrame({'country':['USA','UK','DE'],'sales_2022':[100,80,90],'sales_2023':[120,85,95],'sales_2024':[130,90,100]})

df_long = df_wide.melt(id_vars='country', var_name='year_col', value_name='sales')
df_long['year'] = df_long['year_col'].str.extract(r'(\d{4})').astype(int)
df_long = df_long.drop(columns='year_col')
print(df_long)

Use Cases

  • pivot table conversion
  • tidy data
  • BI tool compatibility

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.