Сначала группируйте по последовательным значениям, а затем создайте список или продиктуйте:
g = df['phn'].ne(df['phn'].shift()).cumsum()
#for list
L = [v for k, v in df.groupby(g)]
print (L)
#for dictionary
d = dict(tuple(g))
#alternative
d = {k: v for k, v in df.groupby(g)}
print (d)