怎么用python按姓名长度进行排序

dataframe对象如下图:
a b c
Sun 1 6 5
Jack 2 7 4
Alice 3 8 3
Helen 4 9 2
Job 5 10 1
请按照姓名长度进行分组


import pandas as pd
data = [['Sun', 1, 6, 5], 
['Jack', 2, 7, 4], 
['Alice' , 3, 8, 3], 
['Helen' , 4, 9, 2], 
['Job'  , 5 , 10, 1]]
df = pd.DataFrame(data=data, columns=['a', 'b', 'c', 'd'])

df.sort_values(by ='a', key=lambda x:x.str.len(),inplace=True )  #排序
print(df)
res = df.groupby(by='a', group_keys=lambda x: x.str.len()) #分组
print(list(res))
df=pd.DataFrame([[1,6,5],[1,2,1],[3,0,9],[5,3,2],[0,9,8]],columns=['a','b','c'],index=['sdsf','ccdfd','egee','i','eegege'])
df.loc[:,'len']=[len(x) for x in df.index.values]
c=df.groupby(['len']).count()
print(c)
###
     a  b  c
len         
1    1  1  1
4    2  2  2
5    1  1  1
6    1  1  1