pandas DataFrame的.groupby().rank()
这个操作 是 对DataFrame某列的数据进行聚类 然后对其它列的属于同类数据进行数值大小排序
但是有几个参数的含义不是很理解
list1 = [1, 3, 1,0,7,4,0]
list2 = [3, 3, 2,0,4,4,5]
list3 = [3, 3, 3,3,4,4,6]
df1 = pd.DataFrame({'col1':list1,'col2':list2,'col3':list3})
print(df1)
df1=df1.set_index('col2')
df1 = df1.groupby(['col3']).rank(method='min',ascending=False)
print(df1)
df1=df1.reset_index()
print(df1)
运行结果如下,显然ascending代表是否升序,method='min'代表排序相同取小值,索引不会受影响
且对于多列数据会同时排序,验证如下
list1 = [1, 3, 1,0,7,4,0]
list2 = [3, 3, 2,0,4,4,5]
list3 = [3, 3, 3,3,4,4,6]
df1 = pd.DataFrame({'col1':list1,'col2':list2,'col3':list3})
print(df1)
#df1=df1.set_index('col2')
df1 = df1.groupby(['col3']).rank(method='max',ascending=False)
print(df1)