how to re-arrange multiple columns into one column with same index

Viewed 5834

I'm using python pandas and I want to adjust one same index to multiple columns and make it into one column. And when it's possible, I also want to delete the zero value.

I have this data frame

index A B C 
a     8 0 1 
b     2 3 0
c     0 4 0 
d     3 2 7 

I'd like my output to look like this

index data value
a     A    8 
b     A    2
d     A    3
b     B    3
c     B    4
d     B    2
a     C    1
d     C    7

===
I solved this task as below. My original data has 2 indexes & 0 in dataframe were NaN values.

At first, I tried to apply melt function while removing NaN values following this (How to melt a dataframe in Pandas with the option for removing NA values), but I couldn't. Because my original data has several columns ('value_vars'). so I re-organized dataframe by 2 steps:

  1. Firstly, I made multi-column into one-column by melt function,
  2. Then removed NaN values in each rows by dropna function.

Coding Script Snipppet

2 Answers
Related