I have a pandas data frame with 3 columns: id, start_time, channel. for example:
| id | start_time | channel |
|---|---|---|
| a | b | c |
| a | b | d |
| a | f | g |
| e | h | i |
etc..
I would like to compact the table and have something like this:
| id | start_time | channel |
|---|---|---|
| a | [b,f] | [c,d,g] |
| e | h | i |
(The id has to be unique value). For every id can I have one or more start_time and channel. I appreciate any help
CodePudding user response:
Use unique after groupby:
df.groupby('id', as_index=False).agg(lambda x: x.unique())
Output:
id start_time channel
0 a [b, f] [c, d, g]
1 e [h] [i]
