I have a Pandas Table with some IDs that are identical on several lines but the assigned value is different. How is it possible to get a result where the ID is only shown once on one line and append the various values in multiple columns?
Starting point:
| ID | Column 1 |
|---|---|
| 1 | blue |
| 1 | red |
| 2 | gray |
| 3 | yellow |
| 4 | orange |
| 1 | pink |
| 2 | white |
Desired solution:
| ID | Column 1 | Column 2 | Column 3 |
|---|---|---|---|
| 1 | blue | red | pink |
| 2 | gray | white | |
| 3 | yellow | ||
| 4 | orange |
>Solution :
Groupby the ID and then compute the unique values
df.groupby("ID")["Column 1"].apply(lambda x: pd.Series(x.unique())).unstack()