Reputation: 25
I have a df that looks like this:
User Chat_People Talk_People Schedule_Time
1 first second third
2 second third first
I want to convert it to look like:
User First Second Third
1 Chat_People Talk_People Schedule_Time
2 Schedule_Time Chat_People Talk_People
I tried doing:
df["First"] = df.apply((lambda x: col_name for col_name in ["Chat_People","Talk_People","Schedule_Time"] if x[col_name] == "first"), axis=1)
But am running into:
TypeError: cannot create 'generator' instances
Any help would be much appreciated!
Upvotes: 0
Views: 77
Reputation: 323226
melt
then pivot
out = df.melt('User').pivot('User','value','variable').reset_index()
out
value User first second third
0 1 Chat_People Talk_People Schedule_Time
1 2 Schedule_Time Chat_People Talk_People
Upvotes: 4