0

how can I transform this:

      Name   jan     fev
0   A53AAA  50.0    75.0
1   A65AAA   0.0   100.0
2   A69AAA  90.5    58.3

in that:

  NAME   MT  SCORE
A53AAA  jan   50.0
A53AAA  fev   75.0
A65AAA  jan    0.0
A65AAA  fev  100.0
A69AAA  jan   90.5
A69AAA  fev   58.3

already tried with stack, unstack, pd.pivot_table and df.pivot and nothing...

1 Answers1

1

You can use pandas.melt:

pd.melt(df, id_vars=['Name'], var_name='MT', value_name='SCORE')

If changing the case of the column names is important you can add:

(pd.melt(df, id_vars=['Name'], var_name='MT', value_name='SCORE')
   .rename(columns=str.upper))

or

(pd.melt(df, id_vars=['Name'], var_name='MT', value_name='SCORE')
   .rename(columns={'Name': 'NAME'}))
mozway
  • 194,879
  • 13
  • 39
  • 75
  • You should print a [pandas reshaping cheat sheet](https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf) ;) – mozway Jul 26 '21 at 13:41