最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pandas的排序和排名的具體使用

 更新時(shí)間:2019年07月31日 14:46:26   作者:修煉之路  
這篇文章主要介紹了pandas的排序和排名的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

有的時(shí)候我們可以要根據(jù)索引的大小或者值的大小對(duì)Series和DataFrame進(jìn)行排名和排序。

一、排序

pandas提供了sort_index方法可以根據(jù)行或列的索引按照字典的順序進(jìn)行排序

a、Series排序

1、按索引進(jìn)行排序

  #定義一個(gè)Series
  s = Series([1,2,3],index=["a","c","b"])
  #對(duì)Series的索引進(jìn)行排序,默認(rèn)是升序
  print(s.sort_index())
  '''
  a  1
  b  3
  c  2
  '''
  #對(duì)索引進(jìn)行降序排序
  print(s.sort_index(ascending=False))
  '''
  c  2
  b  3
  a  1
  '''

2、按值進(jìn)行排序

  s = Series([np.nan,1,7,2,0],index=["a","c","e","b","d"])
  #對(duì)Series的值進(jìn)行排序,默認(rèn)是按值的升序進(jìn)行排序的
  print(s.sort_values())
  '''
  d  0.0
  c  1.0
  b  2.0
  e  7.0
  a  NaN
  '''
  #對(duì)Seires的值進(jìn)行降序排序
  print(s.sort_values(ascending=False))
  '''
  e  7.0
  b  2.0
  c  1.0
  d  0.0
  a  NaN
  '''

對(duì)值進(jìn)行排序的時(shí)候,無(wú)論是升序還是降序,缺失值(NaN)都會(huì)排在最后面。

b、DataFrame排序

1、按索引進(jìn)行排序

  a = np.arange(9).reshape(3,3)
  data = DataFrame(a,index=["0","2","1"],columns=["c","a","b"])
  #按行的索引升序進(jìn)行排序,默認(rèn)按行,升序
  print(data.sort_index())
  '''
    c a b
  0 0 1 2
  1 6 7 8
  2 3 4 5
  '''
  #按行的索引按降序進(jìn)行排序
  print(data.sort_index(ascending=False))
  '''
    c a b
  2 3 4 5
  1 6 7 8
  0 0 1 2
  '''
  #按列升序的索引進(jìn)行排序
  print(data.sort_index(axis=1))
  '''
    a b c
  0 1 2 0
  2 4 5 3
  1 7 8 6
  '''
  #按列降序的索引進(jìn)行排序
  print(data.sort_index(ascending=False))
  '''
    c a b
  2 3 4 5
  1 6 7 8
  0 0 1 2
  '''

2、按值進(jìn)行排序

  a = [[9,3,1],[1,2,8],[1,0,5]]
  data = DataFrame(a, index=["0", "2", "1"], columns=["c", "a", "b"])
  #按指定列的值大小順序進(jìn)行排序
  print(data.sort_values(by="c"))
  '''
    c a b
  2 1 2 8
  1 1 0 5
  0 9 3 1
  '''
  print(data.sort_values(by=["c","a"]))
  '''
    c a b
  1 1 0 5
  2 1 2 8
  0 9 3 1
  '''
  #按指定行值進(jìn)行排序
  print(data.sort_values(by="0",axis=1))
  '''
    b a c
  0 1 3 9
  2 8 2 1
  1 5 0 1
  '''

注意:對(duì)DataFrame的值進(jìn)行排序的時(shí)候,我們必須要使用by指定某一行(列)或者某幾行(列),如果不使用by參數(shù)進(jìn)行指定的時(shí)候,就會(huì)報(bào)TypeError: sort_values() missing 1 required positional argument: 'by'。使用by參數(shù)進(jìn)行某幾列(行)排序的時(shí)候,以列表中的第一個(gè)為準(zhǔn),可能后面的不會(huì)生效,因?yàn)橛械臅r(shí)候無(wú)法做到既對(duì)第一行(列)進(jìn)行升序排序又對(duì)第二行(列)進(jìn)行排序。在指定行值進(jìn)行排序的時(shí)候,必須設(shè)置axis=1,不然會(huì)報(bào)錯(cuò),因?yàn)槟J(rèn)指定的是列索引,找不到這個(gè)索引所以報(bào)錯(cuò),axis=1的意思是指定行索引。

二、排名

排名和排序有點(diǎn)類(lèi)似,排名會(huì)有一個(gè)排名值(從1開(kāi)始,一直到數(shù)組中有效數(shù)據(jù)的數(shù)量),它與numpy.argsort的間接排序索引差不多,只不過(guò)它可以根據(jù)某種規(guī)則破壞平級(jí)關(guān)系。

a、Series的排名

  s = Series([1,3,2,1,6],index=["a","c","d","b","e"])
  #默認(rèn)是根據(jù)值的大小進(jìn)行平均排名
  '''
  1是最小的,所以第一個(gè)1排在第一,第二個(gè)1排在第二
  因?yàn)槿〉氖瞧骄琶?,所?的排名為1.5
  '''
  print(s.rank())
  '''
  a  1.5
  c  4.0
  d  3.0
  b  1.5
  e  5.0
  '''
  #根據(jù)值在數(shù)組中出現(xiàn)的順序進(jìn)行排名
  print(s.rank(method="first"))
  '''
  a  1.0
  c  4.0
  d  3.0
  b  2.0
  e  5.0
  '''

method參數(shù)除了,first按值在原始數(shù)據(jù)中的出現(xiàn)順序分配排名,還有min使用整個(gè)分組的最小排名,max是用整個(gè)分組的最大排名,average使用平均排名,也是默認(rèn)的排名方式。還可以設(shè)置ascending參數(shù),設(shè)置降序還是升序排序。

b、DataFrame的排名

  a = [[9, 3, 1], [1, 2, 8], [1, 0, 5]]
  data = DataFrame(a, index=["0", "2", "1"], columns=["c", "a", "b"])
  print(data)
  '''
    c a b
  0 9 3 1
  2 1 2 8
  1 1 0 5
  '''
  #默認(rèn)按列進(jìn)行排名
  print(data.rank())
  '''
     c  a  b
  0 3.0 3.0 1.0
  2 1.5 2.0 3.0
  1 1.5 1.0 2.0
  '''
  #按行進(jìn)行排名
  print(data.rank(axis=1))
  '''
     c  a  b
  0 3.0 2.0 1.0
  2 1.0 2.0 3.0
  1 2.0 1.0 3.0
  '''

method參數(shù)和ascending參數(shù)的設(shè)置與Series一樣。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用python庫(kù)matplotlib繪制不同的圖表

    利用python庫(kù)matplotlib繪制不同的圖表

    這篇文章主要介紹了利用python庫(kù)matplotlib繪制不同的圖表,使用python中的matplotlib繪制圖表,主要分享繪制簡(jiǎn)單的曲線(xiàn)圖、單條曲線(xiàn)圖、多條曲線(xiàn)圖、直方圖以及散點(diǎn)圖的思路和用法,需要的朋友可以參考一下
    2022-03-03
  • Python使用matplotlib顯示圖像實(shí)例

    Python使用matplotlib顯示圖像實(shí)例

    在Python項(xiàng)目中處理圖像數(shù)據(jù)之前,需要確保安裝了matplotlib庫(kù),它是一個(gè)用于繪制圖表和圖像顯示的工具,若尚未安裝,可以使用pip命令進(jìn)行安裝,安裝完成后,可以通過(guò)matplotlib的pyplot模塊讀取并顯示MNIST手寫(xiě)數(shù)據(jù)集中的圖像,若需要顯示灰度圖
    2024-10-10
  • python使用numpy生成18種特殊數(shù)組

    python使用numpy生成18種特殊數(shù)組

    這篇文章主要介紹了python使用numpy生成18種特殊數(shù)組的方法,文章通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置

    Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置

    這篇文章主要介紹了Django中的CACHE_BACKEND參數(shù)和站點(diǎn)級(jí)Cache設(shè)置,Python是最具人氣的Python web框架,需要的朋友可以參考下
    2015-07-07
  • 一步一步教你用Python?pyglet仿制鴻蒙系統(tǒng)里的時(shí)鐘

    一步一步教你用Python?pyglet仿制鴻蒙系統(tǒng)里的時(shí)鐘

    pyglet是一個(gè)面向Python的跨平臺(tái)窗口、多媒體庫(kù),它可以用于創(chuàng)建游戲和多媒體應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于如何一步一步教你用Python?pyglet仿制鴻蒙系統(tǒng)里的時(shí)鐘,需要的朋友可以參考下
    2024-03-03
  • Python中reduce函數(shù)詳解

    Python中reduce函數(shù)詳解

    本文主要介紹了Python中reduce函數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python中requests做接口測(cè)試的方法

    Python中requests做接口測(cè)試的方法

    Requests是一個(gè)很實(shí)用的Python HTTP客戶(hù)端庫(kù),編寫(xiě)爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到,本文主要介紹了Python中requests做接口測(cè)試的方法,感興趣的可以了解一下
    2021-05-05
  • Python使用Pandas處理.xlsx文件的詳細(xì)教程

    Python使用Pandas處理.xlsx文件的詳細(xì)教程

    這篇文章主要介紹了如何使用Pandas庫(kù)處理.xlsx文件,包括環(huán)境配置、讀取、寫(xiě)入、數(shù)據(jù)操作和高級(jí)操作,Pandas提供了豐富的功能,使得數(shù)據(jù)處理變得簡(jiǎn)單高效,需要的朋友可以參考下
    2025-02-02
  • Python實(shí)現(xiàn)過(guò)濾單個(gè)Android程序日志腳本分享

    Python實(shí)現(xiàn)過(guò)濾單個(gè)Android程序日志腳本分享

    這篇文章主要介紹了Python實(shí)現(xiàn)過(guò)濾單個(gè)Android程序日志腳本分享,本文講解了原理、實(shí)現(xiàn)代碼、使用方法、最新代碼等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • 淺談python腳本設(shè)置運(yùn)行參數(shù)的方法

    淺談python腳本設(shè)置運(yùn)行參數(shù)的方法

    今天小編就為大家分享一篇淺談python腳本設(shè)置運(yùn)行參數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

长葛市| 淮北市| 青龙| 屯昌县| 乌苏市| 富平县| 阆中市| 长治市| 琼结县| 西和县| 韶关市| 桃园县| 田东县| 沽源县| 垦利县| 武清区| 北安市| 高要市| 略阳县| 沭阳县| 乐业县| 甘德县| 泰兴市| 渝北区| 维西| 黄大仙区| 南汇区| 云林县| 息烽县| 偃师市| 苏尼特右旗| 长沙市| 霍邱县| 青州市| 湘阴县| 广灵县| 杭锦旗| 新民市| 宁德市| 犍为县| 札达县|