专栏首页算法channelPandas|排序,分组,组内排序

Pandas|排序,分组,组内排序

01

Pandas的基本排序

Pandas的主要数据结构有2个:DataFrame,Series,针对这两个类型的排序Demo如下:

#coding=utf-8

import pandas as pd

import numpy as np

#以下实现排序功能。

series=pd.Series([3,4,1,6],index=['b','a','d','c'])

frame=pd.DataFrame([[2,4,1,5],[3,1,4,5],[5,1,4,2]],columns=['b','a','d','c'],index=['one','two','three'])

print(frame)

print(series)

#series的排序API

print('series通过索引进行排序:')

print(series.sort_index())

print('series通过值进行排序:')

print(series.sort_values())

#dataframe的排序API

print('dataframe根据行索引进行降序排序(排序时默认升序,调节ascending参数):')

print(frame.sort_index(ascending=False))

print('dataframe根据列索引进行排序:')

print(frame.sort_index(axis=1))

print('dataframe根据值进行排序:')

print(frame.sort_values(by='a'))

print('通过多个索引进行排序:')

print(frame.sort_values(by=['a','c']))

02

输出

b  a  d  c
one    2  4  1  5
two    3  1  4  5
three  5  1  4  2
b    3
a    4
d    1
c    6
dtype: int64
series通过索引进行排序:
a    4
b    3
c    6
d    1
dtype: int64
series通过值进行排序:
d    1
b    3
a    4
c    6
dtype: int64
dataframe根据行索引进行降序排序(排序时默认升序,调节ascending参数):
       b  a  d  c
two    3  1  4  5
three  5  1  4  2
one    2  4  1  5
dataframe根据列索引进行排序:
       a  b  c  d
one    4  2  5  1
two    1  3  5  4
three  1  5  2  4
dataframe根据值进行排序:
       b  a  d  c
two    3  1  4  5
three  5  1  4  2
one    2  4  1  5
通过多个索引进行排序:
       b  a  d  c
three  5  1  4  2
two    3  1  4  5
one    2  4  1  5

Pandas是具有行索引和列索引的表格,可以对这两个维度的索引分别排序。

03

Pandas分组

# data是DataFrame的实例

group_column1 = data.groupby('column1')

注意group_column1是一个Groupby类型的实例,它是可迭代的,元素为元包,第一个元素是组名称,第二个元素是子DataFrame。

04

Pandas组内排序

因为第二个元素是子DataFrame,所以:

for group_name, group_eles in group_column1:

group_eles.sort_values(by='column2',ascending=False)

这样就实现了组内排序

以上总结了Pandas的基本排序,分组,组内排序,希望有用,更好的API请留言

本文分享自微信公众号 - 算法channel(alg-channel),作者:alg-flody

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学文科的他发明堆排序,逆袭成为斯坦福终身教授!

    计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了堆排序算法...

    double
  • 直接选择排序到堆排序做的那些改进

    主要推送关于对算法的思考以及应用的消息。坚信学会如何思考一个算法比单纯地掌握100个知识点重要100倍。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎...

    double
  • 归并排序算法的过程图解

    主要推送关于对算法的思考以及应用的消息。坚信学会如何思考一个算法比单纯地掌握100个知识点重要100倍。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎...

    double
  • python中列表的sort方法使用详解

    一、基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。 排序,数字、字符串按照ASC...

    用户1214487
  • vCenter Server Appliance(VCSA)6.7安装

    环境准备 本次在一个已经安装的ESXI 6.7的机器上,虚拟出来一台虚拟机,安装的ubuntu-16.04.6-desktop-amd64系统. 在官网下载对应...

    似水的流年
  • python: sort, sorted, reverse

    python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加...

    昱良
  • conda清华镜像源失效

    以前安装生信软件,可以用conda方便地安装,现在清华镜像源不能用了。如果想用conda需要把之前添加的清华和中科大镜像源都删除。condarc下删除就可以了。...

    Y大宽
  • 一键下载掌盟文章

    爬了不少网页,还没试过app,今天就来实战一下吧!本次目标是爬取掌上英雄联盟app的文章,需要备有Fiddler,MongoDB(可选),一个安装了掌上英雄联盟...

    老肥码码码
  • 智动大闯关题解

    按ctrl + u 查看源代码 可以看到有一个设置为白色的下一关的按钮,点击即可过关。

    学前端
  • 使用Python将图片变成铅笔素描

    我们知道一张色彩鲜艳的美照,看起来自然赏心悦目的,同样要是一张素描照,同样的效果看起来也是不错的。

    JiekeXu之路

扫码关注云+社区

领取腾讯云代金券