欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一、排序

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

a、Series排序

1、按索引進行排序

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

2、按值進行排序

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

對值進行排序的時候,無論是升序還是降序,缺失值(NaN)都會排在最后面。

b、DataFrame排序

1、按索引進行排序

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

2、按值進行排序

  a = [[9,3,1],[1,2,8],[1,0,5]]
  data = DataFrame(a, index=["0", "2", "1"], columns=["c", "a", "b"])
  #按指定列的值大小順序進行排序
  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
  '''
  #按指定行值進行排序
  print(data.sort_values(by="0",axis=1))
  '''
    b a c
  0 1 3 9
  2 8 2 1
  1 5 0 1
  '''

注意:對DataFrame的值進行排序的時候,我們必須要使用by指定某一行(列)或者某幾行(列),如果不使用by參數(shù)進行指定的時候,就會報TypeError: sort_values() missing 1 required positional argument: 'by'。使用by參數(shù)進行某幾列(行)排序的時候,以列表中的第一個為準,可能后面的不會生效,因為有的時候無法做到既對第一行(列)進行升序排序又對第二行(列)進行排序。在指定行值進行排序的時候,必須設置axis=1,不然會報錯,因為默認指定的是列索引,找不到這個索引所以報錯,axis=1的意思是指定行索引。

二、排名

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

a、Series的排名

  s = Series([1,3,2,1,6],index=["a","c","d","b","e"])
  #默認是根據(jù)值的大小進行平均排名
  '''
  1是最小的,所以第一個1排在第一,第二個1排在第二
  因為取的是平均排名,所以1的排名為1.5
  '''
  print(s.rank())
  '''
  a  1.5
  c  4.0
  d  3.0
  b  1.5
  e  5.0
  '''
  #根據(jù)值在數(shù)組中出現(xià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使用整個分組的最小排名,max是用整個分組的最大排名,average使用平均排名,也是默認的排名方式。還可以設置ascending參數(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
  '''
  #默認按列進行排名
  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
  '''
  #按行進行排名
  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ù)的設置與Series一樣。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Django JWT Token RestfulAPI用戶認證詳解

    Django JWT Token RestfulAPI用戶認證詳解

    這篇文章主要介紹了Django JWT Token RestfulAPI用戶認證詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • unittest+coverage單元測試代碼覆蓋操作實例詳解

    unittest+coverage單元測試代碼覆蓋操作實例詳解

    這篇文章主要為大家詳細介紹了unittest+coverage單元測試代碼覆蓋操作的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python學習字符串駐留與常量折疊隱藏特性詳解

    python學習字符串駐留與常量折疊隱藏特性詳解

    這篇文章主要為大家介紹了python學習中字符串駐留與常量折疊的一些隱藏特性,并給大家進行了詳細分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python多線程通信queue隊列用法實例分析

    Python多線程通信queue隊列用法實例分析

    這篇文章主要介紹了Python多線程通信queue隊列用法,結合實例形式分析了Python多線程通信queue隊列相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-03-03
  • 使用Python Typing模塊提升代碼可讀性和健壯性實例探索

    使用Python Typing模塊提升代碼可讀性和健壯性實例探索

    這篇文章主要為大家介紹了使用Python Typing模塊提升代碼可讀性和健壯性實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python實現(xiàn)從url中提取域名的幾種方法

    Python實現(xiàn)從url中提取域名的幾種方法

    這篇文章主要介紹了Python實現(xiàn)從url中提取域名的幾種方法,本文給出了3種方法實現(xiàn)在URL中提取域名的需求,需要的朋友可以參考下
    2014-09-09
  • Python調用各大機器翻譯API的實現(xiàn)示例

    Python調用各大機器翻譯API的實現(xiàn)示例

    本文主要介紹了Python調用各大機器翻譯API的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • python字典的常用方法總結

    python字典的常用方法總結

    在本篇文章里小編給大家整理的是關于python字典的常用方法以及相關知識點內容,需要的朋友們參考下。
    2019-07-07
  • Python中的flask框架詳解

    Python中的flask框架詳解

    flask是一個基于Python開發(fā)并且依賴jinja2模板和Werkzeug?WSGI服務的一個微型框架,對于Werkzeug本質是Socket服務端,其用于接收http請求并對請求進行預處理,然后觸發(fā)Flask框架,本文給大家介紹Python中的flask框架,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Python實現(xiàn)PyPDF2處理PDF文件的方法示例

    Python實現(xiàn)PyPDF2處理PDF文件的方法示例

    這篇文章主要介紹了Python實現(xiàn)PyPDF2處理PDF文件的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論