Mine
Mine

Reputation: 861

How to melt all rows of a dataframe into one column (python)

How can I melt the rows of some_df to look like expectedDf

some_df = pd.DataFrame(data = {"user_id" : ["A","B"], "1" : [0,1], "2": [0,0], "3":[1,0]})
expectedDf = pd.DataFrame(data = {"user_id" : ["A","A","A","B","B","B"], "group" : ["1","2","3","1","2","3"], "target": [0,0,1,1,1,0]})

Upvotes: 0

Views: 58

Answers (1)

Andrej Kesely
Andrej Kesely

Reputation: 195418

Try:

print(
    some_df.melt("user_id", var_name="group", value_name="target")
    .sort_values(by="user_id")
    .reset_index(drop=True)
)

Prints:

  user_id group  target
0       A     1       0
1       A     2       0
2       A     3       1
3       B     1       1
4       B     2       0
5       B     3       0

Upvotes: 2

Related Questions