pandas 4 - 排序( tcy)
排序 2018/12/1 2018/12/15
分类:按索引标签排序,按列值排序,以及两者的组合排序
1.1 序列按值,索引排序:
s=pd.Series(np.arange(4),index=list('dabc'))s.sort_values() # 按值排序
s.sort_index(ascending=True) # 按行或列索引排序
1.2序列多索引排序:
arrays = [np.array(['d4', 'd4', 'b2', 'b2','c3', 'c3', 'a1', 'a1']),
np.array(['ss2', 'ss1', 'ss2', 'ss1','ss2', 'ss1', 'ss2', 'ss1'])]
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8], index=arrays)s.sort_index(level=1) #指定要排序的索引级别
s.sort_index(level=1, sort_remaining=False)#按级别排序时,不按剩余级别排序# s # 输出: # 输出:
# d4 ss2 1 # a1 ss1 8 # d4 ss1 2
# ss1 2 # b2 ss1 4 # b2 ss1 4
# b2 ss2 3 # c3 ss1 6 # c3 ss1 6
# ss1 4 # d4 ss1 2 # a1 ss1 8
# c3 ss2 5 # a1 ss2 7 # d4 ss2 1
# ss1 6 # b2 ss2 3 # b2 ss2 3
# a1 ss2 7 # c3 ss2 5 # c3 ss2 5
# ss1 8 # d4 ss2 1 # a1 ss2 7
# dtype: int64 # dtype: int64 # dtype: int64
2.1数据帧按值排序:
df1 = pd.DataFrame({'A1':[2,1,1,1],'A2':[1,3,2,4],'A3':[5,4,3,2]})
df1[['A1', 'A2', 'A3']].sort_values(by=['A1','A2']) #值按列排序
df1.sort_values(by=3,axis=1) #值按行排序df = pd.DataFrame({'A1' : ['a', 'a', 'b', np.nan, 'd', 'c'],#不能够按行值排序'A2' : [2, 1, 9, 8, 7, 4],'A3': [0, 1, 9, 4, 2, 3]})df.sort_values(by=['A1', 'A2']) #按A1A2列值排序
df.sort_values(by='A1', ascending=False) #按A1列值排序降序# df #输出 #输出
# A1 A2 A3 # A1 A2 A3 # A1 A2 A3
# 0 a 2 0 # 1 a 1 1 # 4 D 7 2
# 1 a 1 1 # 0 a 2 0 # 5 C 4 3
# 2 b 9 9 # 2 b 9 9 # 2 B 9 9
# 3 NaN 8 4 # 5 c 4 3 # 0 A 2 0
# 4 d 7 2 # 4 d 7 2 # 1 A 1 1
# 5 c 4 3 # 3 NaN 8 4 # 3 NaN 8 4
2.2数据帧按索引排序:
df=pd.DataFrame(np.arange(8).reshape(2,4),index=['a','b'],columns=list('DABC'))df.sort_index(axis=0,ascending=True)# 按行标签排序
df.sort_index(axis=1,ascending=True)# 按列标签排序
df.reindex(index=['a', 'b', 'c'], columns=['A', 'B', 'E'])
2.3按索引和值排序:
# 作为by参数可以引用列或索引级别名称。
idx = pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('a', 2), ('b', 2), ('b', 1), ('b', 1)])
idx.names = ['first', 'second']
df = pd.DataFrame({'A': np.arange(6, 0, -1)},index=idx)df.sort_values(by=['second', 'A'])#按'second'(索引)和'A'(列)排序# df #df.sort_values# A # A
# first second # first second
# a 1 6 # b 1 1
# 2 5 # 1 2
# 2 4 # a 1 6
# b 2 3 # b 2 3
# 1 2 # a 2 4
# 1 1 # 2 5
3.searchsorted()# 1D 查找应该插入元素以维持顺序的索引
s.searchsorted(value, side='left', sorter=None)#查找应该插入元素以维持顺序的索引
s = pd.Series([10,12,13,15])s.searchsorted([10, 13]) # array([0, 2]) <=10都为0
s.searchsorted([10, 14]) # array([0, 3]) >13 and <=15都为3s.searchsorted([11, 13], side='right') # array([1, 3])
s.searchsorted([11, 13], side='left') # array([1, 2], dtype=int64)s = pd.Series([3, 1, 2])
s.searchsorted([0, 3], sorter=np.argsort(s)) # array([0, 2])
4.最小/最大值索引nsmallest()和nlargest() # 快于head(n)
实例1:-Series s = pd.Series([4,2,3,5,6,0,1])
s.sort_values()# 0...6
s.nsmallest(3) # 0 1 2
s.nlargest(3) # 6 5 4
实例2:-DataFrame df = pd.DataFrame({'a': [-2, -1, 1, 10, 8, 11, -1], 'b': list('abdceff'),
'c': [1.0, 2.0, 4.0, 3.2, np.nan, 3.0, 4.0]})df.nlargest(3, 'a') , df.nlargest(3, ['a', 'c'])
df.nsmallest(3, 'a'),df.nsmallest(3, ['a', 'c'])# a b c # a b c
# 0 -2 a 1.0 # 0 -2 a 1.0
# 1 -1 b 2.0 # 1 -1 b 2.0
# 6 -1 f 4.0 # 6 -1 f 4.0
5.rank()返回从小到大排序的下标
s = pd.Series([7,-5,7,4,2,0,4])
s.rank(method='first')#根据值在原数据中出现的顺序排名df=pd.Datadf({'b':[5,7,-3,2],'a':[0,1,0,1],'c':[-2,5,8,-3]})
df.rank(axis=0) #指定要进行排序的轴
备注:
obj.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')#按值排序
obj.sort_index(axis=0, level=None, ascending=True, inplace=False,kind='quicksort', na_position='last', sort_remaining=True) #按索引标签排序
# 参数:
# axis=0 #轴直接排序。对于系列来说,这只能是0。
# level:int #对指定索引级别的值进行排序。
# ascending=true #默认按升序排序。
# inplace=False #为True则就地执行操作。
# kind: {'quicksort','mergesort','heapsort'}选择排序算法
# na_position:{'first','last'} #将NaN放在开头或最后。
# sort_remaining=True #按级别排序,是否按剩余级别排序
pandas 4 - 排序( tcy)相关推荐
- python pandas DataFrame 排序
python pandas DataFrame 排序 import pandas as pd import numpy as np df1 = pd.DataFrame({'日期': ['2021-7 ...
- 【Python】Pandas数据排序实现
公众号:尤而小屋 作者:Peter 编辑:Peter 在以前的一篇文章 图解Pandas的排序机制sort_values 详细介绍了如何使用pandas的内置函数sort_values来实现数 ...
- Pandas数据排序,人人都能学会的几种方法
来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 Pandas 可以说是 在Python数据科学领域应用最为广泛的工具之一. Pandas是一种高效的数据处理库,它以 datafr ...
- Pandas知识点-排序操作
Pandas知识点-排序操作 数据处理过程中,经常需要对数据进行排序,使数据按指定的顺序排列(升序或降序). 在Pandas中,排序功能已经实现好了,我们只需要调用对应的方法即可. 本文使用的数据来源 ...
- 【Python】一文搞懂Pandas数据排序
数据排序,是使用非常高频的功能,Pandas排序支持做的非常好,主要涉及两个函数,两种数据类型,组合起来四种情况. Series排序 Series.sort_index 索引排序 Series.sor ...
- Pandas数据排序——【按索引排序sort_index()方法、按值排序sort_value()方法】
文章目录 按索引排序--sort_index() 对Series排序 对DataFrame排序 按值排序--sort_value() 对Series进行排序 对DataFrame进行排序 按索引排序- ...
- python pandas excel 排序_Pandas 按组汇总和列排序 - python
给定以下数据框 In [31]: rand = np.random.RandomState(1) df = pd.DataFrame({'A': ['foo', 'bar', 'baz'] * 2, ...
- python dataframe排序_python – Pandas DataFrame排序忽略了这种情况
我在 Python中有一个Pandas数据帧.数据帧的内容来自 here.我稍微修改了"单个"列中第一个字母的大小写.这是我有的: import pandas as pd df = ...
- python pandas excel 排序_Python pandas对excel的操作实现示例
最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...
最新文章
- linux shell case语句
- 【收藏】Linux系统常用命令速查手册(附PDF下载链接)
- python函数里面引用外部变量_Python基础 变量进阶
- jzoj3919-志愿者【换根法,线段树,树形dp】
- oc引导win方法_[OC更新]机械革命X1/X6TIS标压测试版更新
- 知识图谱入门2-2:用户输入->知识库的查询语句
- pandas保存为excel,同时设置保存的excel的样式
- 【转】Linux内核报文收发
- SAP License:SAP打油诗
- md 阅读器_职场办公神器:文石BOOX Nova Pro 电子书阅读器测评
- python虚拟环境 windows环境搭建_windows下安装Python虚拟环境virtualenvwrapper-win
- 转:mysql show processlist命令 详解
- Facebook对MySQL全表扫描性能的改进
- heidisql与 MySQL区别,heidisql怎么使用 MySQL可视化工具heidisql安装使用教程
- db4o数据库文件_繁忙的Java开发人员指南db4o,使用db4o进行数据库重构
- 用BeautifulSoup爬取豆瓣妹子的图片
- 电机学他励直流发电机matlab,直流发电机综合实验指导书(全文5篇)
- SharedPreferences in credential encrypted storage are not available until after user is unlocked
- J2ME 发送彩信问题,请个位高手帮忙,长时间在线等待
- 游戏陪玩app开发,高并发系统如何设计?
热门文章
- ucore lab1
- 老姜 大数据金融项目
- Javascript偏函数与柯里化
- 到微软工作还有意思么?
- nginx以及openresty
- 【长句分析】2019.7.31
- 用css3实现摩天轮旋转的动画效果
- 了解marquee标签
- 小米手机上锁程序_【搞事】雷军公布最喜欢的三款小米手机,你猜中了吗?| 程序员手抖:小米8重新上架,2599元...
- English trip V1 - B 2. May I Help You? 它是多少钱? Teacher:Lamb Key: