Reputation: 861
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
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