pandas多级分组实现排序的方法

yipeiwu_com7年前Python基础

pandas有groupby分组函数和sort_values排序函数,但是如何对dataframe分组之后排序呢?

In [70]: df = pd.DataFrame(((random.randint(2012, 2016), random.choice(['tech', 'art', 'office']), '%dk-%dk'%(random.randint(2,10), random.randint(10, 20)), '') for _ in xrange(10000)), columns=['publish_time', 'classf', 'salary', 'title'])

In [71]: df.head()
Out[71]:
 publish_time classf salary title
0   2012  art 2k-19k
1   2014 office 5k-17k
2   2013 office 2k-10k
3   2013  art 5k-14k
4   2013  art 2k-14k

In [72]: df.groupby(['publish_time', 'classf', 'salary']).count()['title'].groupby(level=0, group_keys=False).nlargest(10)
Out[72]:
publish_time classf salary
2012   art  7k-13k  18
      4k-13k  16
    tech 3k-12k  14
    art  6k-16k  13
      8k-15k  13
    office 5k-18k  13
    tech 4k-14k  13

以上这篇pandas多级分组实现排序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)

详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)

Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等类和函数...

Python 基础教程之闭包的使用方法

Python 基础教程之闭包的使用方法 前言: 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编...

python中property和setter装饰器用法

python中property和setter装饰器用法

作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name 区别:前者改变get方法,后者改变set方法 效果图: 代码: class Pers...

利用ctypes获取numpy数组的指针方法

如下所示: import numpy as np from ctypes import * a = np.asarray(range(16), dtype=np.int32).re...

Python lambda和Python def区别分析

Python支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地方。 lambda的语法时常会使人感到困惑,la...