python - Stacking dataframe columns (Pandas) -


i looking way pivot dataframe in reverse direction. best of knowledge, pandas provides pivot or pivot_table method transform eav df "normal" one. however, there way inverse?

so given dataframe:

$df userid b c 0 1 1 0 1 1 3 1 2 1 5 0

i transform (a eav model):

$df e v
0 1 0 b 1 0 c 0 1 1 1 b 3 1 c 1 2 1 2 b 5 2 c 0

what efficient way so?

assuming userid index, df.stack it:

in [133]: df.stack().reset_index().rename(columns={'userid' : 'e', 'level_1' : 'a', 0 : 'v'}) out[133]:     e   v 0  0   1 1  0  b  1 2  0  c  0 3  1   1 4  1  b  3 5  1  c  1 6  2   1 7  2  b  5 8  2  c  0 

if userid not index, set this:

df.set_index('userid', inplace=true) 

Comments

Popular posts from this blog

javascript - Training Neural Network to play flappy bird with genetic algorithm - Why can't it learn? -

service - Android MediaPlayer calls onCompletion before it already finished -

javascript - Create a stacked percentage column -