1. 程式人生 > >Pandas:排名與排序

Pandas:排名與排序

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

一、排序

1.按索引排序

Series

s = Series([3,1,7,0],index=['c','d','a','b'])
s.sort_index()
a    7
b    0
c    3
d    1
dtype: int64

DataFrame

df = DataFrame(np.arange(20).reshape(5,4),index=[3,1,2,4,6],columns=['d','c','a'
,'b']) print(df)
    d   c   a   b
3   0   1   2   3
1   4   5   6   7
2   8   9  10  11
4  12  13  14  15
6  16  17  18  19

行索引排序

print(df.sort_index(ascending=False)) # 降序排列
    d   c   a   b
6  16  17  18  19
4  12  13  14  15
3   0   1   2   3
2   8   9  10  11
1   4   5   6   7

列索引排序

print(df.sort_index(axis=1
))
    a   b   c   d
3   2   3   1   0
1   6   7   5   4
2  10  11   9   8
4  14  15  13  12
6  18  19  17  16

2.按值排序

Series

s.sort_values()
b    0
d    1
c    3
a    7
dtype: int64

DataFrame

按多列值進行排序

print(df.sort_values(by=['a','b']))
    d   c   a   b
3   0   1   2   3
1   4   5   6   7
2   8   9  10  11
4  12  13  14  15
6  16  17  18  19

按多行值進行排序

print(df.sort_values(by=[2,6],axis=1))
    d   c   a   b
3   0   1   2   3
1   4   5   6   7
2   8   9  10  11
4  12  13  14  15
6  16  17  18  19

二、排名

1.對不同的數字進行排名,並給出名次。相同的數字,那麼對排名取均值。

o = Series([7,-5,7,4,2,0,4,7])
o.rank()
0    7.0
1    1.0
2    7.0
3    4.5
4    3.0
5    2.0
6    4.5
7    7.0
dtype: float64

2.相同元素排名不取均值,而是按先後順序給出排名

o.rank(method='first')
0    6.0
1    1.0
2    7.0
3    4.0
4    3.0
5    2.0
6    5.0
7    8.0
dtype: float64

3.相同元素取最大的排名,其餘排名不再使用

o.rank(method='max')
0    8.0
1    1.0
2    8.0
3    5.0
4    3.0
5    2.0
6    5.0
7    8.0
dtype: float64

相關推薦

Pandas排名排序

import numpy as np import pandas as pd from pandas import Series,DataFrame 一、排序 1.按索引排序 Series

20172328《程式設計資料結構》實驗三查詢排序

20172328《程式設計與資料結構》實驗三:查詢與排序 課程:《軟體結構與資料結構》 班級: 1723 姓名: 李馨雨 學號:20172328 實驗教師:王志強老師 實驗日期:2018年11月19日-2018年11月25日 必修選修: 必修 一、實驗要求內容 實驗1:

20172327 2018-2019-1 《程式設計資料結構》實驗三查詢排序

20172327 2018-2019-1 《程式設計與資料結構》實驗三:查詢與排序 課程:《Java軟體結構與資料結構》 班級:201723 姓名:馬瑞蕃 學號:20172327 實驗教師:王志強 實驗日期:2018年11月19日 必修/選修:必修 一、實驗內容: 實驗

九度OJ 1014排名排序

時間限制:1 秒 記憶體限制:32 兆 特殊判題:否 提交:8267 解決:2469 題目描述:     今天的上機考試雖然有實時的Ranklist,但上面的排名只是根據完成的題數

pandas數值計算排序

以下程式碼是基於python3.5.0編寫的 import pandas food_info = pandas.read_csv("food_info.csv") # --------------

排高低冒泡插入排序。不要管別人,自己設計的才是自己的。

算法算法問題的一個分類:排高低。背景:有一系列的值,有大有小,由於某個目的(比如兩兩分組讓最小者的和最大、比如容納最多和不超過某個值的元素、等等),需要先把它們排一下高低。一個數值數組,怎麽給裏面的元素排出高低(比如由小到大地排序)?兩兩比較不是問題,要解決的是這兩個問題:* 誰跟誰比,怎麽安排?* 比後怎麽

VUE列表的過濾排序

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>06_列表渲染_過濾與排序</title> </

Android版資料結構演算法(八)二叉排序

本文目錄 前兩篇文章我們學習了一些樹的基本概念以及常用操作,本篇我們瞭解一下二叉樹的一種特殊形式:二叉排序樹(Binary Sort Tree),又稱二叉查詢樹(Binary Search Tree),亦稱二叉搜尋樹。 一、二叉排序樹定義 二叉排序樹或者是一顆空樹,或者是具有下列性質的二叉樹:

Android版數據結構算法(八)二叉排序

delet 概念 最好 指定 性能 and 並且 二叉樹 排列 本文目錄 前兩篇文章我們學習了一些樹的基本概念以及常用操作,本篇我們了解一下二叉樹的一種特殊形式:二叉排序樹(Binary Sort Tree),又稱二叉查找樹(Binary Search Tree),亦稱二

#資料結構演算法學習筆記#劍指Offer35數字在排序陣列中出現的次數 + 測試用例(Java、C/C++)

2018.10.24 今天是程式設計師節,但是程式設計師有啥節好過的,還是好好幹活吧~ 這道題也是一道效率題,根據實際情況的不同有兩個比較好用的方法: 方法一:平均複雜度o(n)。二分找到某一個K

排序思路實現

學習了一下堆排序的思想,分享一下我的理解。 首先介紹一些概念。 堆(heap),最大堆(max heap),最小堆(min heap) 堆是一種特別的樹狀結構,普通的樹結構,沒有對子節點也特別的規定,但堆是一顆完全的樹,除了最底層,上面的每一層都是滿的。 如果一

資料庫原理MySQL檔案排序演算法引數

對於不能利用索引避免排序的SQL,資料庫不得不自己實現排序功能以滿足使用者需求,此時SQL的執行計劃中會出現“Using filesort”, 這裡需要注意的是filesort並不意味著就是檔案排序,其實也有可能是記憶體排序,這個主要由sort_buffer_size引數與結果集大小確定。 假

結構體簡單排序練習 題目1014排名

題目描述:     今天的上機考試雖然有實時的Ranklist,但上面的排名只是根據完成的題數排序,沒有考慮每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的考生,並將他們的成績按降序列印。 輸入:     測試輸入包含若干場考試的資訊。

八大排序演算法實戰思想實現

摘要:   所謂排序,就是根據排序碼的遞增或者遞減順序把資料元素依次排列起來,使一組任意排列的元素變為一組按其排序碼線性有序的元素。本文將介紹八種最為經典常用的內部排序演算法的基本思想與實現,包括插入排序(直接插入排序,希爾排序)、選擇排序(直接選擇排序,堆排

【LeetCode & 劍指offer刷題】查詢排序題5Merge Sorted Array

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) Merge Sorted Array Given two sorted integer arrays   nums1  

【LeetCode & 劍指offer刷題】查詢排序題341 資料流中的中位數(295. Find Median from Data Stream)

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) 41 資料流中的中位數 題目描述 如何得到一個數據流中的中位數?如果從資料流中讀出 奇數個數值,那麼 中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值

【LeetCode & 劍指offer刷題】查詢排序題4Median of Two Sorted Arrays

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) Median of Two Sorted Arrays There are two sorted arrays   nums1 &nb

【LeetCode & 劍指offer刷題】查詢排序題240 最小的k個數(對應Kth Largest Element in an Array)

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) 40 最小的k個數 題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,

【LeetCode & 劍指offer刷題】查詢排序題10First Bad Version

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) First Bad Version You are a product manager and currently leading a team to develop a n

【LeetCode & 劍指offer刷題】查詢排序題8Search for a Range

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) Search for a Range Given an array of integers   nums   so