技术标签: pandas python python排序 sort_index sort_value
DataFrame中的排序分为两种,一种是对索引排序,一种是对值进行排序。
索引排序:sort_index();值排序:sort_values();值排名:rank()
对于索引排序,涉及到对行索引、列索引的排序,并且还涉及到是升序还是降序。函数df.sort_index(axis= , ascending= , inplace=),需要特别注意这三个参数。axis表示对行操作,还是对列操作;ascending表示升序,还是降序操作。
对于值排序,同样也是涉及到行、列排序问题,升序、降序排列问题。函数df.sort_values(by= , axis= , ascending= , inplace=),也需要特别注意这几个参数,只是多了一个by操作,需要我们指明是按照哪一行或哪一列,进行排序的。
注意:axis=0表示对行操作,axis=1表示对列进行操作;ascending=True表示升序,ascending=False表示降序;inplace=True表示对原始DataFrame本身操作,因此不需要赋值操作,inplace=False相当于是对原始DataFrame的拷贝,之后的一些操作都是针对这个拷贝文件进行操作的,因此需要我们赋值给一个变量,保存操作后的结果。
df = pd.DataFrame({
"A":[1,3,5,7,9],
"D":[1,2,3,4,5],
"C":[3,6,9,12,15],
"B":[2,4,6,8,10]},
index=list("acbed"))
display(df)
display(id(df))
df.sort_index(axis=0,ascending=True,inplace=True)
display(df)
display(id(df))
df1 = df.sort_index(axis=0,ascending=True)
display(df1)
display(id(df1))
结果如下:
df = pd.DataFrame({
"A":[1,3,5,7,9],
"D":[1,2,3,4,5],
"C":[3,6,9,12,15],
"B":[2,4,6,8,10]},
index=list("acbed"))
display(df)
df.sort_index(axis=1,ascending=False,inplace=True)
display(df)
结果如下:
df = pd.DataFrame({
"A":[3,1,5,9,7],
"D":[4,1,2,5,3],
"C":[3,15,9,6,12],
"B":[2,4,6,10,8]},
index=list("acbed"))
display(df)
df.sort_values(by="A",axis=0,ascending=True,inplace=True)
display(df)
结果如下:
df = pd.DataFrame({
"A":[3,1,5,9,7],
"D":[4,1,2,5,3],
"C":[3,15,9,6,12],
"B":[2,4,6,10,8]},
index=list("acbed"))
display(df)
df.sort_values(by="A",axis=1,ascending=False,inplace=True)
display(df)
结果如下:
df = pd.DataFrame({
"A":[3,1,3,9,7],
"D":[666,1,888,5,3],
"C":[3,15,9,6,12],
"B":[2,4,6,10,8]},
index=list("acbed"))
display(df)
df.sort_values(by=["A","D"],axis=0,ascending=[True,False],inplace=True)
df
结果如下:
注意:上图中,我们分别按照A和D这个列进行排序,先按照A列做升序排列,当A列中具有相同值的时候,就按照D列做降序排列。
na_position参数用于设定缺失值的显示位置,first表示缺失值显示在最前面;last表示缺失值显示在最后面。
df = pd.DataFrame({
"A":[10,8,np.nan,2,4],
"D":[1,7,5,3,8],
"B":[5,2,8,4,1]},
index=list("abcde"))
display(df)
df.sort_values(by="A",axis=0,inplace=True,na_position="first")
display(df)
df.sort_values(by="A",axis=0,inplace=True,na_position="last")
display(df)
结果如下:
x = {
"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],
"sales":[60,40,50,40,30,80,70,60]}
df = pd.DataFrame(x)
display(df)
结果如下:
x = {
"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],
"sales":[60,40,50,40,30,80,70,60]}
df = pd.DataFrame(x)
display(df)
df["排名"] = df["sales"].rank(method="first")
display(df)
结果如下:
x = {
"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],
"sales":[60,40,50,40,30,80,70,60]}
df = pd.DataFrame(x)
display(df)
df["排名"] = df["sales"].rank(method="min")
display(df)
结果如下:
x = {
"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],
"sales":[60,40,50,40,30,80,70,60]}
df = pd.DataFrame(x)
display(df)
df["排名"] = df["sales"].rank(method="max")
display(df)
结果如下:
x = {
"name":["张三","李四","王五","赵六","郑七","陈八","黄九","孙十"],
"sales":[60,40,50,40,30,80,70,60]}
df = pd.DataFrame(x)
display(df)
df["排名"] = df["sales"].rank(method="average")
display(df)
结果如下:
Ubuntu和CentOS之间选哪个是老生常谈了,在知乎上也有好多争论。我在这里只列出一些区别并不做谁更好的结论,只有更适合的情况。1、Ubuntu是基于Debian架构的,而CentOS是从Red Hat Enterprise Linux派生的。这一点决定了两个系统在多方面必然不同,例如安装软件上Ubuntu使用apt-get软件包管理器下载DEB软件包,CentOS使用yum命令从中央存储库下载并安装RPM软件包。2、Ubuntu追求的是新技术,CentOS则比较老成求稳。Ubuntu上的软
问题描述volume的情况:两副本加一个仲裁盘。偶然发现副本A所在的brick和副本B所在的brick的大小不一样,查看就是使用 du -sh查看的brick的目录。问题分析我们这边发现的原因是这样的:比较大的brick的数据目录下的,.glusterfs目录下存在大量的没有目标文件的硬连接。正常情况下,.glusterfs目录下的文件是硬连接文件,会指向一个文件:有问题的文件,使用stat查看Links为1问题解决使用下面脚本可以检测是不是存在失去目标的硬连接#!/bin/bas
属性是存在 属性不存在 属性值是null 判断Collection.size<1或String.length()<1 等于 不等于 大于 大于等于 小于 小于等于、 select id,note from Prod...
机器学习和数据挖掘推荐书单有了这些书,再也不愁下了班没妹纸该咋办了。慢慢来,认真学,揭开机器学习和数据挖掘这一神秘的面纱吧!《机器学习实战》:本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部...
文章转自乐字节网上流传着一段视频,这个视频在网上引起了很大的争议,视频中某HR说:大公司筛选简历的时候只认985学校毕业的,非985高校毕业的求职者,连简历筛选这一关都过不去。扎心了!程序员表示不服!也有公司称:只要本科生,不要专科生。一.本科含金量有多少?在校期间,本科生学了什么?第一,大部分学校老师水平不够。第二,也有水平好的老师,但他们又都在忙着接项目或发表论文,没有潜心于教?第三,再说说学生。还有大部分学生在社团、游戏、谈恋爱…把精力消磨掉了,真正学习的时间就是考前的一段时间。
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程。教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有...
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。mysql> SELECT * FROM employee_tbl;+----+--------+---------------------+--------+| id | name | date | singin |+----+--------...
.circle-check,.square-check { display: inline-block;}.circle-check>input[type="checkbox"] { width: 1.64rem; height: 1.64rem; display: inline-block; text-align: center; v...
静态HTML给引用外部的css和js文件添加随机参数 让浏览器强制刷新css和js文件
病毒:是在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码;●木马:是比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机;●肉鸡:指电脑中了木马,或者留了后门,可以被远程操控的机器,现在许多人把有WEBSHELL 权限的机器也叫肉鸡;●抓鸡:利用使用大量的程序的漏洞,使用自动化方式获
学习笔记之资源操作相关函数作者:日月明时间:2010-01-22最近遇到了这样个问题:编程实现修改EXE程序的图标,比如把一个EXE程序图标改为pdf、word等图标。。。。。问题终于解决了,其中最主要的就是涉及到资源函数的相应操作。故发此文。。。。。。。。。1、FindResource函数:该函数确定指定模块中指定类型和名称的资源所在位置。HRSRC FindResource( HMODUL