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

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

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

有的時候我們可以要根據(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ù)進行某幾列(行)排序的時候,以列表中的第一個為準(zhǔn),可能后面的不會生效,因為有的時候無法做到既對第一行(列)進行升序排序又對第二行(列)進行排序。在指定行值進行排序的時候,必須設(shè)置axis=1,不然會報錯,因為默認指定的是列索引,找不到這個索引所以報錯,axis=1的意思是指定行索引。

二、排名

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

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使用平均排名,也是默認的排名方式。還可以設(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
  '''
  #默認按列進行排名
  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ù)的設(shè)置與Series一樣。

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

相關(guān)文章

  • 利用python庫matplotlib繪制不同的圖表

    利用python庫matplotlib繪制不同的圖表

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

    Python使用matplotlib顯示圖像實例

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

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

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

    Django中的CACHE_BACKEND參數(shù)和站點級Cache設(shè)置

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

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

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

    Python中reduce函數(shù)詳解

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

    Python中requests做接口測試的方法

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

    Python使用Pandas處理.xlsx文件的詳細教程

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

    Python實現(xiàn)過濾單個Android程序日志腳本分享

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

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

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

最新評論

乐山市| 搜索| 宁城县| 星子县| 杭锦后旗| 泉州市| 晋州市| 万载县| 禹州市| 万源市| 同德县| 东辽县| 华安县| 遂平县| 获嘉县| 老河口市| 神池县| 姜堰市| 浮山县| 扎赉特旗| 包头市| 丰原市| 离岛区| 临桂县| 淮南市| 科技| 武功县| 建始县| 突泉县| 镇安县| 安乡县| 南皮县| 赤水市| 寿阳县| 咸宁市| 西乌| 青州市| 安顺市| 绥化市| 洞口县| 江口县|