Вы должны использовать pandas.pivot_table()
:
df = pd.DataFrame([[1,'a',10],[1,'b',20],[2,'a',30],[2,'b',10],[3,'a',10],[3,'b',60]],columns=['col1','col2','col3'])
df1 = df.pivot_table(index=['col1'],columns='col2').reset_index()
df1.columns = ['col1','a','b']
df1['c'] = df1['a']/df1['b']
Кроме того, теперь вы можете merge
это df1
вернуться в исходное df
.
![screenshot of the output](https://i.stack.imgur.com/JIOEu.png)