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