Вы можете сделать:
import pandas as pd
data = [[0, 23, 1],
[1, 5, 2],
[1, 2, 3],
[1, 19, 5],
[2, 56, 1],
[2, 22, 2],
[3, 2, 4],
[3, 14, 5],
[4, 59, 1],
[5, 44, 1],
[5, 1, 2],
[5, 87, 3]]
df = pd.DataFrame(data=data, columns=['c1', 'c2', 'c3'])
def to_list(x):
return list(zip(x.c2, x.c3))
groups = df.groupby('c1')[['c2', 'c3']].apply(to_list)
result = {k: values for k, values in zip(groups.index, groups)}
print(result)
Вывод
{0: [(23, 1)], 1: [(5, 2), (2, 3), (19, 5)], 2: [(56, 1), (22, 2)], 3: [(2, 4), (14, 5)], 4: [(59, 1)], 5: [(44, 1), (1, 2), (87, 3)]}