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
  • 379,657
  • 97
  • 704
  • 746
SeagullWardy
  • 187
  • 1
  • 2
  • 11

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
  • 317,841
  • 20
  • 164
  • 234
Vaishali
  • 37,545
  • 5
  • 58
  • 86