Этого можно добиться с помощью пользовательской функции агрегирования.
Код
df = pd.DataFrame({
'line': [10,10,50,60,50],
'to_line': [20,30,40,70,80],
'priority': [1,1,3,2,3]
})
array_agg = lambda x: '/'.join(x.astype(str))
grp_df = df.groupby(['line', 'priority']).agg({'to_line': array_agg})
, или, если вы не хотите, чтобы сгруппированные столбцы были индексами, вы можете передатьas_index
аргумент для groupby
метод
grp_df = df.groupby(['line', 'priority'], as_index=False).agg({'to_line': array_agg})
Выход
to_line
line priority
10 1 20/30
50 3 40/80
60 2 70