Group pandas DataFrame rows into lists

(, en)
def as_grouped_lists(df, key_col, val_col):
     keys, values = df[[key_col, val_col]].sort_values(key_col).values.T
     ukeys, index = np.unique(keys, True)
     arrays = np.split(values, index[1:])
     return {k: list(v) for k, v in zip(ukeys, arrays)}

Source