You can use pandas.melt()-
pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')
Demo -
In [72]: df
Out[72]:
Product New York California
0 Widget01 100 50
In [73]: pd.melt(df,id_vars='Product', var_name='Location',value_name='Total Sold')
Out[73]:
Product Location Total Sold
0 Widget01 New York 100
1 Widget01 California 50
source
share