Pandas數據排序——【按索引排序sort_index()方法、按值排序sort_value()方法】

文章目錄

  • 按索引排序——sort_index()
    • 對Series排序
    • 對DataFrame排序
  • 按值排序——sort_value()
    • 對Series進行排序
    • 對DataFrame進行排序


按索引排序——sort_index()

sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’,sort_remaining=True)

上述方法中常用參數:

axis:軸索引(排序的方向),0表示按index,1表示按columns

level:若不為None,則對指定索引級別的值進行排序

ascending:是否升序排列,默認為True,表示升序

inplace:默認為False,表示對數據表進行排序,不創建新的實例

kind:選擇排序算法

這里只舉例kind參數的作用,其他參數在下文的應用中會被用到
arrays = [np.array(['qux', 'qux', 'foo', 'foo','baz', 'baz', 'bar', 'bar']),np.array(['two', 'one', 'two', 'one','two', 'one', 'two', 'one'])]
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8], index=arrays)
print("s:\n", s)
print("s.sort_index(level=0):\n", s.sort_index(level=0))
print("s.sort_index(level=1:\n", s.sort_index(level=1))

輸出結果:

s:
qux  two    1one    2
foo  two    3one    4
baz  two    5one    6
bar  two    7one    8
dtype: int64s.sort_index(level=0):
bar  one    8two    7
baz  one    6two    5
foo  one    4two    3
qux  one    2two    1
dtype: int64s.sort_index(level=1:
bar  one    8
baz  one    6
foo  one    4
qux  one    2
bar  two    7
baz  two    5
foo  two    3
qux  two    1
dtype: int64

對Series排序

import pandas as pd
import numpy as npser_obj = pd.Series(range(10, 15), index=[5, 1, 3, 1, 2])
print("ser_obj:\n", ser_obj)
print("sort:\n", ser_obj.sort_index())  # 升序排列
print("Descending order:\n", ser_obj.sort_index(ascending=False))  # 降序排列

輸出結果:

ser_obj:5    10
1    11
3    12
1    13
2    14
dtype: int64
sort:1    11
1    13
2    14
3    12
5    10
dtype: int64
Descending order:5    10
3    12
2    14
1    11
1    13
dtype: int64

對DataFrame排序

df_obj = pd.DataFrame(np.arange(12).reshape(3, 4), index=[2, 1, 3])
print("df_obj:\n", df_obj)
print("sort:\n", df_obj.sort_index())
print("Descending order:\n", df_obj.sort_index(axis=1, ascending=False))
# 按columns進行降序排序

輸出結果:

df_obj:0  1   2   3
2  0  1   2   3
1  4  5   6   7
3  8  9  10  11
sort:0  1   2   3
1  4  5   6   7
2  0  1   2   3
3  8  9  10  11
Descending order:3   2  1  0
2   3   2  1  0
1   7   6  5  4
3  11  10  9  8

按值排序——sort_value()

sort_value(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)

上述方法中常用參數:

by: 表示排序的列

na_position:為first則將NaN值放在開頭;為last則將NaN值放在最后

對Series進行排序

ser_obj1 = pd.Series([4, np.nan, 6, np.nan, -3, 2])
print("ser_obj1:\n", ser_obj1)
print("ser_obj1.sort_values():\n", ser_obj1.sort_values())  # 按值升序排列
print("sort_values(na_position='first'):\n", ser_obj1.sort_values(na_position='first'))

輸出結果:

ser_obj1:0    4.0
1    NaN
2    6.0
3    NaN
4   -3.0
5    2.0
dtype: float64
ser_obj1.sort_values():4   -3.0
5    2.0
0    4.0
2    6.0
1    NaN
3    NaN
dtype: float64
sort_values(na_position='first'):1    NaN
3    NaN
4   -3.0
5    2.0
0    4.0
2    6.0
dtype: float64

對DataFrame進行排序

df_obj1 = pd.DataFrame([[0.4, -0.1, -0.3, 0.0],[0.2, 0.6, -0.1, -0.7],[0.8, 0.6, -0.5, 0.1]])
print("df_obj1:\n", df_obj1)
print("df1.value:\n", df_obj1.sort_values(by=2, ascending=False))
# 對列索引為2的數據進行降序排序

輸出結果:

df_obj1:0    1    2    3
0  0.4 -0.1 -0.3  0.0
1  0.2  0.6 -0.1 -0.7
2  0.8  0.6 -0.5  0.1
df1.value:0    1    2    3
1  0.2  0.6 -0.1 -0.7
0  0.4 -0.1 -0.3  0.0
2  0.8  0.6 -0.5  0.1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443863.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【大總結2】大學兩年,寫了這篇幾十萬字的干貨總結

本文是我大學兩年知識的總結。涵蓋數據結構、算法、語言基礎、操作系統、關系數據庫、NOSQL、網絡/前端/項目基礎知識、安全和測試、框架的學習、中間件和工具、設計模式和框架原理、我推薦的資料、我的建議 本篇文章應該算是Java后端開發技術棧的,但是大部分是基礎…

Pandas對象的層次化索引——【from_tuples()、from_arrays()、from_product()、swaplevel()、sort_index()、sort_values()】

文章目錄層次化索引的概念層次化索引的創建使用嵌套列表的方式構造層次化索引對象Series對象DataFrame對象通過MultiIndex類的方法構建層次化索引通過from_tuples()方法創建MultiIndex對象通過from_arrays()方法創建MultiIndex對象通過from_product()方法創建MultiIndex對象層次…

《這是全網最硬核redis總結,誰贊成,誰反對?》六萬字大合集

我攤牌了,這篇文章,值得99%的人收藏 此文后續會改為粉絲可見,所以喜歡的請提前關注和收藏,不迷路。 最近有五本我喜歡的redis實體新書,想要的去評論,我寫個隨機數抽獎包郵送給你。 那么,準備好…

Python數據預處理之異常值的處理——【自定義的three_sigma()函數、boxplot()方法】

文章目錄基于3σ原則檢測異常值代碼實現測試基于箱型圖檢測異常值異常值的處理基于3σ原則檢測異常值 3σ原則,又稱拉依達準則。是指假設一組檢測數據只含有隨機誤差。對其進行計算處理得到標準偏差,按一定概率確定一個區間,凡是超過這個區間…

那個谷歌的網紅扔雞蛋的題,來看看教科書式的回答

leetcode頂級難題,谷歌面試天天問,來看看吧,帶你來一步一步達到最優解。 谷歌不知道問了多少遍,藍橋杯也出現過,leetcode上是頂級難題,到底是什么題能如此頻繁地出現?我們一探究竟吧。 原題描述…

Python更改數據類型——astype()方法和to_numeric()函數

文章目錄明確指定數據的類型通過dtypes屬性進行查看創建Pandas對象指定數據類型轉換數據類型通過astype()方法強制轉換數據的類型通過to_numeric()函數轉換數據類型明確指定數據的類型 通過dtypes屬性進行查看 import pandas as pddf pd.DataFrame({A: [1, 2, 4],B: [9, -80…

不騙你,沒讀這一篇,你不可能懂二分

上篇文章講動態規劃獲得了80k瀏覽,這次的二分也值得你們一看,這個系列是特別用心寫的,準備出書的哦 動態規劃 3.0 引子 圖書館自習的時候,一女生背著一堆書進閱覽室,結果警報響了,大媽讓女生看是哪本書把警報弄響了,女生把書倒出…

Python之數據合并——【concat()函數、merge()函數、join()方法、combine_first()方法】

文章目錄軸向堆疊數據——concat()函數橫向堆疊與外連接縱向堆疊與內連接主鍵合并數據——merge()函數內連接方式外連接方式左連接方式右連接方式其他根據行索引合并數據——join()方法四種連接方式行索引與列索引重疊合并重疊數據——combine_first()方法軸向堆疊數據——conc…

超硬核!操作系統學霸筆記,考試復習面試全靠它

之后會發布基于基礎知識的大部分算法的模擬代碼合集,敬請關注。 進程基礎 進程的基本概念 程序順序執行的特征: 1)順序性:處理機嚴格按照程序所規定的順序執行,每一步操作必須在下一步操作開始前執行 2)封…

配置tomcat6.0的HTTPS(單向)

利用JDK自帶的產生證書的工具 生成證書 建立一個腳本文件,內容如下: set SERVER_DN"CNServer, OUshare, Oshare, Lsz, Sgd, CCN" set CLIENT_DN"CNClient, OUshare, Oshare, Lsz, Sgd, CCN" set KS_PASS-storepass changeit set KE…

Python之數據重塑——【stack()方法和unstack()方法、pivot()方法】

文章目錄重塑層次化索引對于單層索引的DataFrame類對象stack()方法unstack()方法對于多層索引的DataFrame類對象辨析操作內層索引與外層索引的區別查看多層索引對象轉換后的類型軸向旋轉——pivot()方法重塑層次化索引 Pandas中重塑層次化索引的操作主要是stack()方法和unstac…

超硬核!學霸把操作系統經典算法給敲完了!要知行合一

上期的筆記,瀏覽快1萬了,既然關注的人很多,那就發出來承諾過的算法全模擬,希望幫到你們。 上期的操作系統學霸筆記,考試復習面試全靠它 一、模擬進程調度 功能 data.h #ifndef _Data_h_ #define _Data_h_#include …

Python之數據轉換——【rename()方法、cut()函數、get_dummies()函數】

文章目錄重命名軸索引離散化連續數據啞變量處理類別型數據重命名軸索引 rename( self, mapper: Optional[Renamer] None, *, index: Optional[Renamer] None, columns: Optional[Renamer] None, axis: Optional[Axis] None, copy: bool True, inplace: bool False, level…

超硬核!數據結構學霸筆記,考試面試吹牛就靠它

上次發操作系統筆記,很快瀏覽上萬,這次數據結構比上次硬核的多哦,同樣的會發超硬核代碼,關注吧。 超硬核!操作系統學霸筆記,考試復習面試全靠它 第一次筆記(復習c,課程概述&#xff…

Python之數據拆分——groupby()方法

文章目錄groupby()方法通過列名進行分組通過Series對象進行分組Series對象與原數據的行索引長度相等Series對象與原數據的行索引長度不等通過字典進行分組按照columns軸的方向進行分組按照index軸的方向進行分組通過函數進行分組groupby()方法 groupby( self, byNone, axis0, l…

超硬核!小白讀了這篇文章,就能在算法圈混了

作為一只超級硬核的兔子,從來不給你說廢話,只有最有用的干貨!這些神級算法送給你 目錄 第一節 1.1bogo排序 1.2位運算 1.3打擂臺 1.4morris遍歷 第二節 2.1睡眠排序 2.2會死的兔子 2.3矩陣快速冪 2.4摔手機/摔雞蛋 時空復雜度目錄 …

Python之數據聚合——aggregate()方法

文章目錄使用內置統計方法聚合數據面向列的聚合方法aggregate()方法對每一列數據應用同一個函數對某列數據應用不同的函數對不同列數據應用不同函數使用內置統計方法聚合數據 實現數據拆分成組并分別計算平均數的操作 代碼: import pandas as pd import numpy as…

超硬核十萬字!全網最全 數據結構 代碼,隨便秒殺老師/面試官,我說的

本文代碼實現基本按照《數據結構》課本目錄順序,外加大量的復雜算法實現,一篇文章足夠。能換你一個收藏了吧? 當然如果落下什么了歡迎大家評論指出 目錄 順序存儲線性表實現 單鏈表不帶頭標準c語言實現 單鏈表不帶頭壓縮c語言實現 約瑟…

Python之分組級運算——【transform()方法、apply()方法】

文章目錄數據轉換——transform()方法數據應用——apply()方法數據轉換——transform()方法 使用aggregate()方法進行聚合運算已經在上一篇博客中詳細闡述,我們知道aggregate()方法返回的數據集的形狀(shape)與被分組的數據集的形狀是不同的…

java限制在同一臺電腦上只允許有一個用戶登錄系統

在web應用系統中,出于安全性考慮,經常需要對同一客戶端登錄的用戶數量和一個客戶同時在多個客戶端登陸進行限制。 具體一點就是: 1、在同一臺電腦上一次只允許有一個用戶登錄系統; 2、一個用戶在同一時間只允許在一個客戶端登錄…