Have a data in such format in .txt file:
UserId WordID
1 20
1 30
1 40
2 25
2 16
3 56
3 44
3 12
If you are concerned with performance issues, like often numpy is better :
df=pd.read_csv('file.txt')
def numpyway():
u,v=df.values.T
ind=argsort(u,kind='mergesort') # stable sort to preserve order
return np.split(v[ind],add(1,*where(diff(u[ind]))))
In [12]: %timeit numpyway() # on 8000 lines
10000 loops, best of 3: 250 µs per loop
If 'UserId' is already sorted, it is yet three times faster.