d = df_test.set_index('b').groupby('b').apply(lambda x : x.to_numpy().tolist()).to_dict() print (d) {7: [[5, 1], [6, 0]], 17: [[15, 1], [16, 0]]}