idx = a.cumsum()
id_arr = np.ones(idx[-1], dtype=int)
id_arr[idx[:-1]] = -a[:-1] + 1
df['newCol'] = np.split(id_arr.cumsum(), idx[:-1])
Создание нового столбца, состоящего из списков в DataFrame с использованием pandas