當前位置:首頁 » 編程語言 » python數據排序

python數據排序

發布時間: 2025-01-06 23:14:23

python中對組合數據類型x進行排序的內置函數是

python有兩個內置的函數用於實現排序,一個是list.sort()函數,一個是sorted()函數。
區別1:list.sort()函數只能處理list類型數據的排序;sorted()則可以處理多種類型數據的排序。
區別2:list.sort()會修改原來的list為排序後的結果;sorted()不會修改原來的數據,只是返回一個排序後的對象。
下面來動手寫點代碼進行測試:
list進行簡單的排序
1 >>>a=['a','f','c','x','e']2 >>>a.sort()3 >>>a4 [a','c','e','f','x']
sorted()進行簡單排序
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a)3 >>>a_new4 ['a', 'c', 'e', 'f', 'x']
list.sort()和sorted都有默認的參數reverse,該參數的默認值為「False」,即默認升序排列。如果要進行降序排列:
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a,reverse=True)3 >>>a_new4 ['x', 'f', 'e', 'c', 'a']
對元組進行排列,不能使用list.sort()函數:
1 >>>a=('a','f','c','x','e')2 >>>a_new=a.sort()3
4 ttributeError: 'tuple' object has no attribute 'sort'
對字典的排序可以按照字典的key或者value進行排序:
1 >>>dic={"aa":11,"ff":5,"ee":22}2 >>>printsorted(dic.keys())3 ['aa', 'ee', 'ff']
從python2.4開始list.sort()和sorted()都引入了key參數來指定一個函數進行排序,有了key參數以後我們就可以對更加復雜的數據進行排序 。
假如需要排序的數據為一個list,但list的每一個元素都是一個字典,排序的方法如下:
>>>dic=[{"name":"sunny","age":20},
{"name":"bell","age":5},
{"name":"jim","age":1},
{"name":"jan","age":10}]>>>print sorted(dic,key=lambda arg:arg.get('age'),reverse=False) #按照每個字典的age的值進行排序,字典的方法dict.get(key)將返回指定鍵的值。
#輸出結果為:[{'age': 1, 'name': 'jim'}, {'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 20, 'name': 'sunny'}]
>>>print sorted(dic,key=lambda arg:arg.get('name'),reverse=False) #按照每個字典的name的值進行排序
#輸出結果為:[{'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 1, 'name': 'jim'}, {'age': 20, 'name': 'sunny'}]
假如需要排序的數據為一個二維的list,即list的每一個元素也是一個list,方法與上面的例子類似:
>>>a=[['100','8','30'],['200','5','50'],['300','1','20']]>>>print sorted(a,key=lambda arg:arg[1]) #按照每個list的第1個元素進行排序
[['300', '1', '20'], ['200', '5', '50'], ['100', '8', '30']]
前面的2個例子中,key參數的值都是函數。在sorted函數中,key參數後面的函數的參數的數量只能是一個。lambda arg:arg.get('age')是一個lambda匿名函數,它是一個沒有函數名的單語句函數。冒號左邊是參數,冒號右邊的返回值,返回值將被用於排序。

❷ python數據同時排序

Python列表具有內置的 list.sort()方法,可以在原地修改列表。 還有一個 sorted()內置的函數從迭代構建一個新的排序列表。在本文中,我們將探討使用Python排序數據的各種技術。

請注意,sort()原始數據被破壞,sorted()沒有對原始數據進行操作,而是新建了一個新數據。

一、基本的排序

最基本的排序很簡單。只要使用sorted()函數即可返回一個 新的排序的列表

>>>sorted([5, 2, 3, 1, 4])

[1, 2, 3, 4, 5]

咱們也可以使用 list.sort()方法。該方法是對列表list進行的原地操作(原數據被修改,已經不是原來的本來面目)。一般情況下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()會更具效率。

>>>a = [5, 2, 3, 1, 4]

>>>a.sort()

>>>a #a發生改變

[1, 2, 3, 4, 5]

另一個不同點, list.sort()方法只能應用於列表對象數據。而 sorted()卻可以對任何可迭代對象進行排序。也就是說sorted()更具有普遍使用性。這里大燈建議初學者使用sorted()。

二、Key參數函數

list.sort()和 sorted()都有key參數,可以指定函數來對元素進行排序。

例如,這里我們使用一個字元串(字元串也是可迭代對象)

>>>sorted("This is a test string from Andrew".split(), key=str.lower)

❸ python中pandas使用技巧之——【2】排序sort_index、sort_values、rank方法

在Python的數據分析工具pandas中,掌握排序技巧能大幅提高工作效率。本文將深入解析sort_index、sort_values和rank這三個常用方法,旨在幫助你在數據處理中游刃有餘。首先,我們來看一下這三個方法的基本介紹:


1. sort_index():這個函數根據數據的索引進行排序,它的核心參數包括但不限於index的排序依據。


2. sort_values():顧名思義,它是根據DataFrame中的數據值進行排序,提供了豐富的參數選項,如指定排序列、排序方式(升序或降序)等。


3. rank():這個方法返回排序後的序號,支持多種排名規則,如平均值(average)、最大值(max)、最小值(min)、按出現順序(first,類似SQL的row_number)以及密集排名(dense,類似SQL的dense_rank),僅適用於數值型數據。


接下來,我們將通過實例演示如何在實踐中使用這些方法:



  • sort_index()的排序操作

  • sort_values()的實際應用

  • rank()函數的靈活運用


掌握這些排序技巧,無論是數據預處理還是數據分析,都將讓你在Python的pandas世界中如魚得水。趕快動手實踐,提升你的數據分析技能吧!

❹ Python利用pandas對數據進行特定排序

背景:在處理Hive表存儲大小時,需對每個表的大小進行排序。通過命令獲取的數據表大小,為直觀大小,如1.1T、1.9G、49.6M。需對表根據存儲大小降序排列。


環境:演示使用10行數據,真實情況有幾萬個表。


函數:pandas.DataFrame.sort_values。


參數詳解:



  • by:指定排序的欄位,可為單個或多個欄位。

  • axis:排序方向,「0」表示行向排序,「1」表示列向排序,默認為「0」。

  • ascending:排序順序,True為升序,False為降序,需與by參數對應。

  • inplace:是否原地更新數據,默認為False,返回新數據框。

  • kind:排序演算法,如『quicksort』、『mergesort』、『heapsort』、『stable』,默認為『quicksort』。

  • na_position:指定NaN的排序位置,'first'或'last',默認為'last'。

  • ignore_index:是否忽略數據索引,默認為False。

  • key:排序前使用的函數,需矢量化,傳入參數為Series,返回結果也為Series。


官方文檔:pandas.pydata.org/docs/...


案例完整演示:


本文介紹如何使用Python的pandas庫對特定數據進行排序,具體內容請訪問鏈接:blog.csdn.net/zhangting...

熱點內容
壓縮機挑選 發布:2025-01-08 07:52:22 瀏覽:315
php鉤子原理 發布:2025-01-08 07:47:25 瀏覽:54
cmd中打開文件夾 發布:2025-01-08 07:42:29 瀏覽:545
iphone小影和安卓哪個好 發布:2025-01-08 07:38:35 瀏覽:972
設置web伺服器的ip 發布:2025-01-08 07:37:15 瀏覽:173
兆易創新有哪些存儲晶元產品 發布:2025-01-08 07:32:44 瀏覽:226
存儲2019 發布:2025-01-08 07:25:40 瀏覽:316
php限制上傳文件類型 發布:2025-01-08 07:16:29 瀏覽:988
hanoi塔演算法 發布:2025-01-08 07:16:18 瀏覽:317
小課題上傳 發布:2025-01-08 07:11:47 瀏覽:176