python进阶-14.pandas-排序-重复轴判断
2020-08-16 20:22
99 查看
文章目录
3.5排序
- list.sort() 操作于原值
- ndarray.sort() 操作于原值
- np.sort(ndarray) 原值不变 ,返回新值
pandas 排序
-
obj.sort_index(ascending = True) 默认升序
-
obj.sort_values(by=‘label’,axis=0,ascending=True,inplace=False)
-
by:str :表示根据 axis方向的索引名进行排序
-
axis:0/1 :表示轴
-
ascending:bool :默认True升序,Flase 是降序
-
inplace:false ;默认不在原值上排序,返回新值
-
准备一个Series
s1=Series(np.random.choice(range(1,7),6,replace=False)*10,index=list('adefcb')) s1
a 30 d 50 e 10 f 20 c 40 b 60 dtype: int32
- 排 索引
s1.sort_index()
a 30 b 60 c 40 d 50 e 10 f 20 dtype: int32
s1.sort_values()
e 10 f 20 a 30 c 40 d 50 b 60 dtype: int32
s1.sort_values(ascending=False)
b 60 d 50 c 40 a 30 f 20 e 10 dtype: int32
- 对 DataFrame 排序
df3 = DataFrame( np.random.randint(1,100,15).reshape(3,5) , index = 'three/two/one'.split('/'), columns=list('baced') ) df3
b a c e d three 12 14 44 20 14 two 75 56 36 54 94 one 37 15 99 67 3
- 排索引
df3.sort_index(axis=0)
b a c e d one 37 15 99 67 3 three 12 14 44 20 14 two 75 56 36 54 94
df3.sort_index(axis=1)
a b c d e three 14 12 44 14 20 two 56 75 36 94 54 one 15 37 99 3 67
- 排值
df3.sort_values(by='c',ascending=True,axis=0)
b a c e d two 75 56 36 54 94 three 12 14 44 20 14 one 37 15 99 67 3
- 按照 one 降序排序
df3.sort_values(by='one',ascending=False,axis=1)
c e b a d three 44 20 12 14 14 two 36 54 75 56 94 one 99 67 37 15 3
模拟创建一个成绩表,语文,数学,英语。各科成绩有重复。
names = '尺,寸,人,下,匕,卜,之,田,丫,乃,贝,井,工,几,女,巨,爪,火,了,方,木,中,寸,石,户,友,夫,不,可,主,又,丑,巾,口,电,门,术,儿,羊,丁,心,天,化,气,正,页,兄,伏,大,计'.split(',') df4 = DataFrame( { '语文':np.random.randint(90,100,50), '数学':np.random.randint(80,100,50), '英语':np.random.randint(60,100,50) }, index = [np.random.choice(list('赵钱孙李周吴郑王'))+names.pop(np.random.randint(0,len(names))) for i in range(50)] ) df4
语文 数学 英语 赵丑 97 99 78 周电 93 89 93 李女 98 83 76 王夫 92 97 70 ...... 郑友 91 84 67 郑大 99 88 72
对df4 按照 语文降序排序
df4.sort_values(by='语文',ascending=False)
语文 数学 英语 郑大 99 88 72 王口 99 82 64 孙门 99 82 61 王了 99 88 74 吴木 99 96 93 赵丫 99 81 92 ....... 郑乃 90 95 86 李石 90 94 94 赵兄 90 97 89
按照多个值排序 by = [ 列1, 列2,。。。。。。。]
df4.sort_values(by=['语文','数学'],ascending=False)
语文 数学 英语 吴木 99 96 93 王了 99 88 74 郑大 99 88 72 孙门 99 82 61 王口 99 82 64 ....... 李石 90 94 94 吴又 90 91 95 周工 90 83 74
- 新增一列为总分
df4.sum(axis=1)
- df4[‘总分’]=df4.sum(axis=1)
df4.insert(3,'总分',df4.sum(axis=1)) df4
语文 数学 英语 总分 赵丑 97 99 78 274 周电 93 89 93 275 李女 98 83 76 257 王夫 92 97 70 259 孙下 98 84 87 269 ...... 孙可 93 94 67 254 王口 99 82 64 245 郑友 91 84 67 242 郑大 99 88 72 259
- 筛选出英语大于 95分
df4[df4['英语']>95]
语文 数学 英语 总分 王羊 98 92 98 288 吴中 95 93 96 284
3.6 重复的 轴 的 判断
s6=Series(range(10),index=list('aaaabbbccc')) s6
a 0 a 1 a 2 a 3 b 4 b 5 b 6 c 7 c 8 c 9 dtype: int64
索引有重复,读值
s6['a'] a 0 a 1 a 2 a 3 dtype: int64
Series.is_unique 判断 Series 的值 是否 唯一。
s6.is_unique
True
- 可以用来判断索引对象是否唯一
s6.index.is_unique
False
df4.index.is_unique
True
相关文章推荐
- Python实遍历二维数组题目一:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- leetcode--删除排序链表中的重复元素--python
- 爪哇国新游记之二十二----排序判断重复时间复杂度为2n的位图法
- 【Python进阶】删除list里的重复元素的三种方法效率分析
- 数组排序及判断是否有重复项
- 用python实现二叉树搜索树/查找树/排序树的验证(判断)(四)(表插入递归)
- LintCode Python 101. 删除排序数组中的重复数字 II
- 05 python列表 练习题(排序输出-复制列表-完成数-逗号分隔列表-反向输出列表-判断某年某月某日是一年中的第几天)
- python判断回文/三个数排序
- Python进阶---python判断字符串是否包含子字符串的方法
- 点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
- Leetcode 82 删除排序链表中的重复元素 II Python C++ 史上最详细题解系列
- LeetCode刷题笔记82: 删除排序链表中的重复元素 II(Python实现)
- Python判断列表里是否有重复元素的三种方法
- 【leetcode】删除排序链表中的重复元素(python实现)
- Python While循环语句 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为: while 判断条件:
- Python判断文本中消息重复次数的方法
- python_lintcode_115不同的路径 II_112删除排序链表中的重复元素
- Python实现判断给定列表是否有重复元素的方法
- zzuliOJ 1915:判断重复坐标(排序+水题)