11-Pandas之排序(df.sort_index()、df.sort_values()、随机重排、随机采样)
排序是一种索引机制的一种常见的操作方法,也是Pandas重要的内置运算,主要包括以下3种方法:
| 排序方法 | 说明 |
|---|---|
| sort_values() | 根据某一列的值进行排序 |
| sort_index() | 根据索引进行排序 |
| 随机重排 | 详见后面 |
本节以新冠肺炎的部分数据为例(读取“today_world_2020_04_18.csv”的国家名、时间、累计确诊、累计治愈、累计死亡这5列)
一、sort_values()
注意:默认情况下sort_values()是升序排列,ascending = Fals表示降序;
import pandas as pd
import numpy as np
df = pd.read_csv('.input/today_world_2020_04_18.csv',
usecols=['name','lastUpdateTime','total_confirm','total_dead','total_heal'],encoding='gbk')
#使用sort_values()根据累计确诊人数的进行降序重排,并列出排名前10的国家信息;
df.sort_values('total_confirm',ascending=False)[:10] name lastUpdateTime total_confirm total_dead total_heal
9 美国 2020-04-17 15:01:45 677146 34641 56159
168 西班牙 2020-04-18 00:00:31 188068 19478 74797
160 意大利 2020-04-18 03:16:25 172434 22745 40164
155 法国 2020-04-18 07:35:22 147969 18681 34420
8 德国 2020-04-18 07:23:10 140886 4326 83114
159 英国 2020-04-18 00:00:31 108692 14576 622
2 中国 2020-04-18 08:03:46 84176 4642 77723
14 伊朗 2020-04-18 00:00:31 79494 4958 54064
143 土耳其 2020-04-18 03:38:28 78546 1769 8631
178 比利时 2020-04-18 00:00:31 36138 5163 7961
二、sort_index()
>>> df.sort_index(ascending=False)[:5]
name lastUpdateTime total_confirm total_dead total_heal
203 马达加斯加 2020-04-18 07:57:30 117 0 33
202 列支敦士登 2020-04-12 00:00:31 79 1 55
201 阿曼 2020-04-18 03:28:30 1069 6 176
200 罗马尼亚 2020-04-18 03:52:56 8067 411 1508
199 格恩西岛 2020-03-27 11:33:37 1 0 0
三、随机重排
sort_values()和sort_index()只能对DataFrame进行升序或降序排列,若希望随机打乱排列顺序(即随机重排),方法如下:
步骤1:使用numpy.random.permutation()产生一个重排后的整数数组【注:numpy.random.permutation可随机排列一个序列,返回一个随机排列后的序号】
步骤2:使用.iloc[]或take()得到重排后的Pandas对象。
#步骤一:取出随机序列
>>> import numpy as np
>>> sampler = np.random.permutation(5) #步骤二:以步骤一得到的随机序列为索引,取出这些数据
#take()函数
>>> df.take(sampler)
name lastUpdateTime total_confirm total_dead total_heal
1 塞尔维亚 2020-04-18 00:00:31 5690 110 534
2 中国 2020-04-18 08:03:46 84176 4642 77723
3 日本 2020-04-18 00:00:31 10535 210 1657
4 泰国 2020-04-18 00:00:31 2700 47 1689
0 突尼斯 2020-04-18 08:09:13 864 37 43 #iloc方法
>>> df.iloc[sampler]
name lastUpdateTime total_confirm total_dead total_heal
1 塞尔维亚 2020-04-18 00:00:31 5690 110 534
2 中国 2020-04-18 08:03:46 84176 4642 77723
3 日本 2020-04-18 00:00:31 10535 210 1657
4 泰国 2020-04-18 00:00:31 2700 47 1689
0 突尼斯 2020-04-18 08:09:13 864 37 43
四、随机采样
使用sample()进行随机采样
>>> df.sample(3)
name lastUpdateTime total_confirm total_dead total_heal
163 芬兰 2020-04-18 02:51:06 3489 82 1700
144 巴布亚新几内亚 2020-04-08 00:00:31 2 0 0
94 索马里 2020-04-16 07:33:23 80 5 2
使用sample()也可以实现重排
>>> df.sample(len(df))[:5]
name lastUpdateTime total_confirm total_dead total_heal
99 马里 2020-04-18 03:33:59 190 13 34
12 圣巴泰勒米 2020-03-27 11:18:38 3 0 0
117 吉尔吉斯斯坦 2020-04-18 00:00:31 489 5 114
88 斯威士兰 2020-04-18 07:55:57 19 1 8
178 比利时 2020-04-18 00:00:31 36138 5163 7961
11-Pandas之排序(df.sort_index()、df.sort_values()、随机重排、随机采样)的更多相关文章
- pandas 数据排序.sort_index()和.sort_values()
原文链接:https://www.jianshu.com/p/f0ed06cd5003 import pandas as pd df = pd.DataFrame(……) 说明:以下“df”为Data ...
- python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...
- pandas中df.ix, df.loc, df.iloc 的使用场景以及区别
pandas中df.ix, df.loc, df.iloc 的使用场景以及区别: https://stackoverflow.com/questions/31593201/pandas-iloc-vs ...
- Pandas数据排序
Pandas数据排序 .sort_index() 在指定轴上根据索引进行排序,索引排序后内容会跟随排序 b = pd.DataFrame(np.arange(20).reshape(4,5),inde ...
- Pandas | 10 排序
Pandas有两种排序方式,它们分别是 - 按标签 按实际值 import pandas as pd import numpy as np df=pd.DataFrame(np.random.rand ...
- pandas数据排序(series排序 & DataFrame排序)
# pandas数据排序 # series的排序: # Series.sort_values(ascending = True,inplace = False) # 参数说明: # ascending ...
- 11.4.2 排序或合并文件(sort命令) - 51CTO.COM
11.4.2 排序或合并文件(sort命令) - 51CTO.COM 11.4.2 排序或合并文件(sort命令) 2010-03-12 14:37 陆松年 电子工业出版社 我要评论(0) 字号:T ...
- 009 Linux 文件大小统计与排序( du于df和sort)
@ 目录 01 du 与 df 作用与区别? du(disk usage) df(disk free) 02 du 常用命令示例 03 sort 常用参数 04 常用组合 du + sort + he ...
- Pandas的排序和排名(Series, DataFrame) + groupby
根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序), 可使用sort_index 方法, 它将返回一个已排序的新对象: 而DataFrame, 则可以根 ...
随机推荐
- 四维DP之方格取数
题目描述 传送门 设有N*N的方格图(N<=20,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样例): 某人从图的左上角的A(1,1) 点出发,可以向下行走,也可 ...
- ASP.NET基础温习
- Quartz.Net 任务调度
基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度 在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentSch ...
- day67 前后端数据交互
目录 一.前后端传输数据的编码格式(contentType) 1 form表单 2 ajax请求 二.ajax发送json格式数据 三.ajax发送文件 四.django自带的序列化组件(drf做铺垫 ...
- scrapy(一):基础用法
Scrapy 框架 Scrapy 简介 Scray 是用python写的为了爬取网站数据,提取结构性数据的应用框架 Scrapy框架原理图 白话讲解Scrapy 运作流程 代码写好,程序开始运行... ...
- java 面向对象(二十五):内部类:类的第五个成员
内部类:类的第五个成员 1.定义: Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类.2.内部类的分类:成员内部类(静态.非静态 ) vs 局部内部类(方法内.代码块内.构 ...
- 数据可视化之DAX篇(十五)Power BI按表筛选的思路
https://zhuanlan.zhihu.com/p/121773967 数据分析就是筛选.分组.聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特 ...
- 前端09 /jQuery标签操作、事件、补充
前端09 /jQuery标签操作.事件.补充 目录 前端09 /jQuery标签操作.事件.补充 1.标签内文本操作 1.1 html标签元素中的所有内容 1.2 text 标签元素的文本内容 2.文 ...
- Kafka 信息整理
请说明什么是传统的消息传递方法? 传统的消息传递方法包括两种: ·排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人. ·发布-订阅:在这个模型中,消息被广播给所有的用户. 为 ...
- DirectX11 With Windows SDK--34 位移贴图
前言 在前面的章节中,我们学到了法线贴图和曲面细分.现在我们可以将这两者进行结合以改善效果,因为法线贴图仅仅只是改善了光照的细节,但它并没有从根本上改善几何体的细节.从某种意义上来说,法线贴图只是一个 ...