pandas排序以及获取序号

参考:https://blog.csdn.net/qq_22238533/article/details/72395564

如果不考虑序号问题,要直接排序则使用pandas  sort_values函数

df.sort_values(by='排序字段',axis=0,ascending=True, inplace=False, na_position=‘last’)

  参数 说明
   by 指定列名(axis=0或’index’)或索引值(axis=1或’columns’)
  axis 若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
  ascending 是否按指定列的数组升序排列,默认为True,即升序排列
  inplace 是否用排序后的数据集替换原来的数据,默认为False,即不替换
  na_position {‘first’,‘last’},设定缺失值的显示位置

 ====如果要获取序号👇

  

#进行对comment_num排序得出sort_num列的序号

data['sort_num']=data['comment_num'].rank(ascending=0,method='dense')

  rank()中两个参数:

ascending,就是选择是升序还是降序排列

method较重要,上图排序后结果,发现如果相同则并列排序,method则为控制排序方法

method='first'    如果出现相等,则取最先出现的值序号为“最小”,其他相同值依次按1递增

data['sort_num']=data['comment_num'].rank(ascending=0,method='first')

 

 method='min' 相等则序号一样,新增一个相同序号,下一个排名序号则会推后+1

data['sort_num']=data['comment_num'].rank(ascending=0,method='min')

 

  method='max'

data['sort_num']=data['comment_num'].rank(ascending=0,method='max')

 

  ---------------------------------组内排序-----------------------------

   以cate字段为一组,对comment排序

data['group_sort']=data['comment_num'].groupby(data['cate']).rank(ascending=0,method='dense')
posted @ 2020-01-07 09:43  小君~  阅读(10170)  评论(0编辑  收藏  举报