Python Forum
How to melt dataframe multiple columns to one column
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to melt dataframe multiple columns to one column
#1
Hi,
I have below dataframe, I want to melt all columns to one column. I use below code, but some thing I am missing


import pandas as pd
df = pd.DataFrame({'ID':['A1','A2','A1'],\
'Estart':[1,2,3],\
'Eend':[4,4,5],\
'Rstart':[1,2,1],\
'Rend':[1,6,5]})
pd.melt(df, id_vars=['ID'], value_vars=['Estart','Eend','Rstart','Rend'])
Igot the below outputL
	ID	variable	value
0	A1	Estart	1
1	A2	Estart	4
2	A1	Estart	3
3	A1	Eend	4
4	A2	Eend	4
5	A1	Eend	5
6	A1	Rstart	1
7	A2	Rstart	2
8	A1	Rstart	1
9	A1	Rend	1
10	A2	Rend	6
11	A1	Rend	5
I want as below: Some help how to arrange ad below:


ID	variable	value
A1	Estart	1
A1	Eend	4
A1	Rstart	1
A1	Rend	1
A2	Estart	2
A2	Eend	4
A2	Rstart	2
A2	Rend	6
A1	Estart	3
A1	Eend	5
A1	Rstart	1
A1	Rend	5
Reply
#2
There is .sort_values method which can help you to get desired order; Take a look at
the following example:
import numpy as np

@np.vectorize
def key_func(x):
    # This function impacts on sorting logic;
    if x.endswith('end'):
        return x[0] + '2'
    elif x.endswith('start'):
        return x[0] + '1'
    return x

pd.melt(df, id_vars=['ID'], value_vars=['Estart','Eend','Rstart','Rend']).sort_values(['ID', 'variable'], key=key_func)
So, you need to change key_func to meet your needs (however, I didn't understand the sorting logic lies behind the order that you want to get).
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Adding PD DataFrame column bsben 2 246 Mar-08-2024, 10:46 PM
Last Post: deanhystad
  Converting column of values into muliple columns of counts highland44 0 205 Feb-01-2024, 12:48 AM
Last Post: highland44
  Python Alteryx QS-Passing pandas dataframe column inside SQL query where condition sanky1990 0 690 Dec-04-2023, 09:48 PM
Last Post: sanky1990
  How to check multiple columns value within range SamLiu 2 1,103 Mar-13-2023, 09:32 AM
Last Post: SamLiu
  Difference one column in a dataframe Scott 0 619 Feb-10-2023, 08:41 AM
Last Post: Scott
  splitting a Dataframe Column in two parts nafshar 2 912 Jan-30-2023, 01:19 PM
Last Post: nafshar
  Converting a json file to a dataframe with rows and columns eyavuz21 13 4,173 Jan-29-2023, 03:59 PM
Last Post: eyavuz21
  How to assign a value to pandas dataframe column rows based on a condition klllmmm 0 799 Sep-08-2022, 06:32 AM
Last Post: klllmmm
  Nested for loops: Iterating over columns of a DataFrame to plot on subplots dm222 0 1,641 Aug-19-2022, 11:07 AM
Last Post: dm222
  renaming the 0 column in a dataframe Led_Zeppelin 5 1,462 Aug-16-2022, 04:07 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020