Skip to main content
added 139 characters in body
Source Link
ayorgo
  • 3.9k
  • 2
  • 29
  • 37

YouAssuming the column names being ['person', 'activity'] you can do

df_out = df.groupby(0'person').agg(list).reset_index() df_out[[1, 2]]df_out = pd.concat([df_out, pd.DataFrame(df_out[1]df_out['activity'].values.tolist())], axis=1) df_out = df_out.drop('activity', 1) 

giving you

  0person 10 21 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

You can do

df_out = df.groupby(0).agg(list).reset_index() df_out[[1, 2]] = pd.DataFrame(df_out[1].values.tolist()) 

giving you

  0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

Assuming the column names being ['person', 'activity'] you can do

df_out = df.groupby('person').agg(list).reset_index() df_out = pd.concat([df_out, pd.DataFrame(df_out['activity'].values.tolist())], axis=1) df_out = df_out.drop('activity', 1) 

giving you

 person 0 1 0 Andrew running cars 1 John guitar dancing 2 Michael football None 
Rollback to Revision 1
Source Link
ayorgo
  • 3.9k
  • 2
  • 29
  • 37

Given the df being

 0 1 0 John guitar 1 Michael football 2 Andrew running 3 John dancing 4 Andrew cars 

You can do

df_out = df.groupby(0).agg(list).reset_index() pd.concat([df_out.drop(0df_out[[1, 1),2]] = pd.DataFrame(df_out[1].values.tolist())], axis=1) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

Given the df being

 0 1 0 John guitar 1 Michael football 2 Andrew running 3 John dancing 4 Andrew cars 

You can do

df_out = df.groupby(0).agg(list).reset_index() pd.concat([df_out.drop(0, 1), pd.DataFrame(df_out[1].values.tolist())], axis=1) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

You can do

df_out = df.groupby(0).agg(list).reset_index() df_out[[1, 2]] = pd.DataFrame(df_out[1].values.tolist()) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 
added 182 characters in body
Source Link
ayorgo
  • 3.9k
  • 2
  • 29
  • 37

Given the df being

 0 1 0 John guitar 1 Michael football 2 Andrew running 3 John dancing 4 Andrew cars 

You can do

df_out = df.groupby(0).agg(list).reset_index() df_out[[1pd.concat([df_out.drop(0, 2]] =1), pd.DataFrame(df_out[1].values.tolist())], axis=1) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

You can do

df_out = df.groupby(0).agg(list).reset_index() df_out[[1, 2]] = pd.DataFrame(df_out[1].values.tolist()) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 

Given the df being

 0 1 0 John guitar 1 Michael football 2 Andrew running 3 John dancing 4 Andrew cars 

You can do

df_out = df.groupby(0).agg(list).reset_index() pd.concat([df_out.drop(0, 1), pd.DataFrame(df_out[1].values.tolist())], axis=1) 

giving you

 0 1 2 0 Andrew running cars 1 John guitar dancing 2 Michael football None 
Source Link
ayorgo
  • 3.9k
  • 2
  • 29
  • 37
Loading