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

yipeiwu_com6年前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设计】。

相关文章

python面向对象入门教程之从代码复用开始(一)

前言 本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论。所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了...

python中的tcp示例详解

python中的tcp示例详解

TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协...

用Python读取几十万行文本数据

我在使用python读取几十万行的文件中的数据,并构造字典,列表等数据结构时,再访问字典,列表时,一般都会出现内存不够的问题,然后只能循环读取几百行或者一定数量的行数来循环操作。 k...

Python中的Classes和Metaclasses详解

类和对象 类和函数一样都是Python中的对象。当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变量。类是type类型的对象(是不是有点拗口?)。 类对象是可调...

Django REST framework 如何实现内置访问频率控制

对匿名用户采用 IP 控制访问频率,对登录用户采用 用户名 控制访问频率。 from rest_framework.throttling import SimpleRateThrot...