Python利用pandas對數(shù)據(jù)進(jìn)行特定排序
背景
小編最近在處理hive表存儲大小時(shí),需要對每個表的大小進(jìn)行排序,因通過 hadoop fs -du -s -h /path/table
命令獲取的數(shù)據(jù)表大小,其結(jié)果是展示為人能直觀理解的大小,例如 1.1T、1.9G、49.6M 等,如果想對這些表根據(jù)存儲大小進(jìn)行降序排列,利用pandas應(yīng)該如何做呢?
小編環(huán)境
import sys print('python 版本:',sys.version.split('|')[0]) #python 版本: 3.11.5 import pandas as pd print(pd.__version__) #2.1.0
測試數(shù)據(jù)
這里僅列舉10行數(shù)據(jù),進(jìn)行演示,小編真實(shí)的hive表有幾萬個
函數(shù)概述
在pandas對數(shù)據(jù)進(jìn)行排序主要使用 pandas.DataFrame.sort_values
方法
DataFrame.sort_values(by, *, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
參數(shù)解釋:
- by :str or list of str用于排序的單個字段 或 多個字段組成的列表
- axis:“{0 or ‘index’, 1 or ‘columns’}”, default 0排序時(shí)的軸向,0 表示行向排序(一行一行排序),1表示列向排序(一列一列排序),默認(rèn)是 0,也就是Excel中經(jīng)常使用的排序
- ascending:bool or list of bool, default True升序、降序,默認(rèn)是升序,也就是True,如果是False,則是降序
- 注意:該參數(shù)需要和 上面的
by
參數(shù)要相對應(yīng) - inplace:bool, default False是否原地更新排序的數(shù)據(jù),默認(rèn)是False,表示調(diào)用該方法后,會返回一個新的數(shù)據(jù)框
- kind:{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’進(jìn)行排序時(shí),指定的排序算法,默認(rèn)是
quicksort
,快速排序算法 - na_position:{‘first’, ‘last’}, default ‘last’在排序的數(shù)據(jù)中,指定
NaN
的排序位置,默認(rèn)是排在最后 - ignore_index:bool, default False是否要忽略數(shù)據(jù)的索引,默認(rèn)是 Fasle,不忽略,使用數(shù)據(jù)原本的索引
- key:callable, optional排序之前使用的函數(shù),該函數(shù)需要是矢量化的,也就是傳入?yún)?shù)是
Series
,返回的結(jié)果也需要為Series
,該函數(shù)會逐個用在被排序的字段上
官方文檔:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html
完整案例
import pandas as pd data=pd.read_excel('排序數(shù)據(jù).xlsx',sheet_name='排序') key_type={'T':1,'G':2,'M':3,'K':4} data.sort_values(by=['大小2','大小1'], ascending=[True,False], key=lambda col: col.map(key_type) if col.name=='大小2' else col )
到此這篇關(guān)于Python利用pandas對數(shù)據(jù)進(jìn)行特定排序的文章就介紹到這了,更多相關(guān)pandas 特定排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python數(shù)據(jù)分析Pandas?Dataframe排序操作
- Pandas數(shù)值排序 sort_values()的使用
- python?pandas?數(shù)據(jù)排序的幾種常用方法
- pandas.DataFrame Series排序的使用(sort_values,sort_index)
- pandas中按行或列的值對數(shù)據(jù)排序的實(shí)現(xiàn)
- pandas?dataframe按照列名給列排序三種方法
- Python使用pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行特定排序
- pandas中DataFrame排序及分組排序的實(shí)現(xiàn)示例
- pandas中數(shù)據(jù)的排序與排名的具體使用
- Pandas排序和分組排名(sort和rank)的實(shí)現(xiàn)
相關(guān)文章
Python序列對象與String類型內(nèi)置方法詳解
這篇文章主要介紹了Python序列對象與String類型內(nèi)置方法,結(jié)合實(shí)例形式分析了Python序列對象與String類型各種常見內(nèi)置方法相關(guān)使用技巧及操作注意事項(xiàng),需要的朋友可以參考下2019-10-10python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法
今天小編就為大家分享一篇python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02淺談python為什么不需要三目運(yùn)算符和switch
下面小編就為大家?guī)硪黄獪\談python為什么不需要三目運(yùn)算符和switch。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06Python字典生成式、集合生成式、生成器用法實(shí)例分析
這篇文章主要介紹了Python字典生成式、集合生成式、生成器用法,結(jié)合實(shí)例形式分析了Python字典生成式、集合生成式、生成器相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01Python 開發(fā)工具PyCharm安裝教程圖文詳解(新手必看)
PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制。今天通過本文給大家分享PyCharm安裝教程,一起看看吧2020-02-02Manjaro、pip、conda更換國內(nèi)源的方法
這篇文章主要介紹了Manjaro、pip、conda更換國內(nèi)源的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11詳解Python如何利用Shelve進(jìn)行數(shù)據(jù)存儲
Shelve是Python標(biāo)準(zhǔn)庫中的一個模塊,用于實(shí)現(xiàn)簡單的數(shù)據(jù)持久化,本文將詳細(xì)介紹Shelve模塊的功能和用法,并提供豐富的示例代碼,希望對大家有所幫助2023-11-11詳解python中的三種命令行模塊(sys.argv,argparse,click)
這篇文章主要介紹了python中的三種命令行模塊(sys.argv,argparse,click)的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12