1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Pandas數(shù)據(jù)排序,人人都能學(xué)會(huì)的幾種方法

        共 2242字,需瀏覽 5分鐘

         ·

        2021-10-08 17:16

        來(lái)源:Python數(shù)據(jù)之道 (ID:PyDataLab)

        作者:陽(yáng)哥

        Pandas 可以說(shuō)是 在Python數(shù)據(jù)科學(xué)領(lǐng)域應(yīng)用最為廣泛的工具之一。

        Pandas是一種高效的數(shù)據(jù)處理庫(kù),它以 dataframeseries 為基本數(shù)據(jù)類型,呈現(xiàn)出類似excel的二維數(shù)據(jù)。

        在數(shù)據(jù)處理過(guò)程中,咱們經(jīng)常需要將數(shù)據(jù)按照一定的要求進(jìn)行排序,以方便展示。

        這里,陽(yáng)哥來(lái)給大家分享下 在 Pandas 中排序的幾種常用方法,主要包括 sort_index ?和 sort_values 。

        01 按索引排序

        數(shù)據(jù)準(zhǔn)備

        文中主要使用了 pandasnumpy ,首先導(dǎo)入 Python 庫(kù),如下:

        import?pandas?as?pd
        import?numpy?as?np
        print(f'pandas?version:?{pd.__version__}')?

        #?pandas?version?1.3.2

        本次使用的數(shù)據(jù)如下:

        data?=?{
        ????'brand':['Python數(shù)據(jù)之道','價(jià)值前瞻','菜鳥數(shù)據(jù)之道','Python','Java'],
        ????'B':[4,6,8,12,10],
        ????'A':[10,2,5,20,16],
        ????'D':[6,18,14,6,12],
        ????'years':[4,1,1,30,30],
        ????'C':[8,12,18,8,2],
        }

        index?=?[9,3,4,5,2]

        df?=?pd.DataFrame(data=data,index=index)
        df

        按行索引排序

        sort_index() 是 pandas 中按索引排序的函數(shù),默認(rèn)情況下, sort_index 是按行索引來(lái)排序。

        通過(guò)設(shè)置參數(shù) ascending 可以設(shè)置升序或降序排列,默認(rèn)情況下是 ascending=True ,為升序排列。

        設(shè)置 ascending=False 時(shí),為降序排列,如下:

        按列的名稱排序

        通過(guò)設(shè)置參數(shù) axis=1 可實(shí)現(xiàn)按列的名稱排序,如下:

        同樣的,可以設(shè)置 參數(shù) ascending 的值,如下:

        關(guān)于按列的名稱排序,更多的方法,可以參考下面的內(nèi)容:

        02 按數(shù)值排序

        sort_values() 是 pandas 中按數(shù)值排序的函數(shù)。

        按單個(gè)列的值排序

        sort_values() 中設(shè)置單個(gè)列的列名稱,可以對(duì)單個(gè)列進(jìn)行排序,通過(guò)設(shè)置參數(shù) ascending 可以設(shè)置升序或降序排列,如下:

        按多個(gè)列的值排序

        同時(shí),sort_values() 可以對(duì)多個(gè)列進(jìn)行不同的排序,通過(guò)設(shè)置列明和排序方式組合來(lái)實(shí)現(xiàn),如下:

        設(shè)置參數(shù) ascendingyears 列為升序,B 列為降序,如下:

        選擇排序算法

        選擇排序算法,參數(shù) kind 默認(rèn)是 'quicksort',其他算法有 mergesort, heapsort, stable。

        該參數(shù)只針對(duì)單個(gè)列時(shí)才有效。

        在 numpy 的 sort文檔中,對(duì)幾種排序的特點(diǎn)進(jìn)行了描述,主要是程序運(yùn)行時(shí)占用的資源和運(yùn)行速度有差異。

        numpy 文檔地址:

        https://numpy.org/doc/stable/reference/generated/numpy.sort.html#numpy.sort

        示例如下:

        忽略索引

        在排序過(guò)程中,還可以引入 ignore_index 參數(shù),來(lái)對(duì)行索引重新設(shè)置,如下:

        inplace

        inplace 是 pandas 中常見的一個(gè)參數(shù)。

        inplace = True:不創(chuàng)建新的對(duì)象,直接對(duì)原始對(duì)象進(jìn)行修改;默認(rèn)是 False,即創(chuàng)建新的對(duì)象進(jìn)行修改,原對(duì)象不變,和深復(fù)制和淺復(fù)制有些類似。

        缺失值

        先構(gòu)造一個(gè)含缺失值的 dataframe,如下:

        data?=?{
        ????'brand':['Python數(shù)據(jù)之道','價(jià)值前瞻','菜鳥數(shù)據(jù)之道','Python','Java'],
        ????'B':[4,6,8,np.nan,12],
        ????'A':['Lemon','emma','ZW','app','John'],
        ????'D':[6,18,14,6,12],
        ????'years':[4,1,1,30,30],
        ????'C':[8,12,18,8,2],
        }

        index?=?[9,3,4,5,2]

        df1?=?pd.DataFrame(data=data,index=index)
        df1

        缺失值排在最前面:

        缺失值排在最后面:

        key 參數(shù)

        通過(guò)設(shè)置 key 參數(shù),可以將列按照特定條件進(jìn)行排序,對(duì)比下下面的排序:

        源代碼文件

        以上就是關(guān)于 Pandas 中排序的介紹,歡迎大家來(lái)暢聊,Pandas 中有哪些實(shí)用的小技巧~~

        Python數(shù)據(jù)分析,包括Pandas、Numpy等,代碼地址:

        https://github.com/liyangbit/python_data_analysis


        推薦閱讀


        牛逼!Python常用數(shù)據(jù)類型的基本操作(長(zhǎng)文系列第①篇)

        牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長(zhǎng)文系列第②篇)

        牛逼!Python函數(shù)和文件操作(長(zhǎng)文系列第③篇)

        牛逼!Python錯(cuò)誤、異常和模塊(長(zhǎng)文系列第④篇)


        瀏覽 59
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            色涩av | 人人操人人av | 麻豆黄色在线观看 | 成人性生交大片免费看2023年 | 亚洲人成人无码网www国产 | 俺也去网站 | 久久久久成人片免费观看蜜芽 | 日韩精品中文字幕一区二区 | 日本一级黄色 | 欧洲美女操逼 |