0

I have a dataframe that currently looks like the following:

X  |  A  |  B  |  C  
X1 |  1  |  3  |  5
X2 |  3  |  5  |  7

I want to reshape it either in Pandas or OpenRefine so it looks like the following:

A  | X1 | 1
A  | X2 | 3
B  | X1 | 3
B  | X2 | 5
C  | X1 | 5
C  | X2 | 7

I know I have done something like it in the past, but cannot for the life of me remember how.

cs95
  • 330,695
  • 80
  • 606
  • 657
SeagullWardy
  • 147
  • 1
  • 2
  • 9

1 Answers1

3

Use df.melt()

df.melt(id_vars='X', value_vars=['A','B','C'])


    X   variable    value
0   X1  A           1
1   X2  A           3
2   X1  B           3
3   X2  B           5
4   X1  C           5
5   X2  C           7
BENY
  • 296,997
  • 19
  • 147
  • 204
Vaishali
  • 35,413
  • 4
  • 48
  • 78