if I have a dataframe:
>>> import pandas as pd
>>> df = pd.DataFrame({'grp':['A', 'A', 'B', 'B', 'B'], 'pos' : [1, 2, 1, 2, 3], 'desc1' : ['X1', 'X2', 'Y1', 'Y2', 'Y3'], 'desc2' : ['A1', 'A2', 'A1', 'A2', 'A3']})
>>> df['desc'] = df.desc1 + ' (' + df.desc2 + ')'
>>> df = df.drop(columns=['desc1', 'desc2'])
>>> df
grp pos desc
0 A 1 X1 (A1)
1 A 2 X2 (A2)
2 B 1 Y1 (A1)
3 B 2 Y2 (A2)
4 B 3 Y3 (A3)
>>>
I would like to transform i to the following dataframe:
grp pos1 pos2 pos3
0 A X1 (A1) X2 (A2) None
1 B Y1 (A1) Y2 (A2) Y3 (A3)
I would like to group everything by "grp" and for each position to have desc in column cell. Groups have variable number of positions. How to do the transformation?
Regards.