Pandasは12の並べ替えと順位を詳しく理解します


約束:
import pandas as pd
import numpy as np

ソートとランキング
SeriesオブジェクトまたはDataFrameオブジェクトの値を条件に従ってソート(sorting)およびランク付け(ranking)することは、重要な組み込み演算です.次にpandasオブジェクトの使い方を紹介します:sort_index()/sort_values()/rank()メソッド.
一、Seriesの並べ替え
Seriesオブジェクトのソートは最も一般的で、Seriesオブジェクトのインデックス、値に基づいてソートできます.
  • インデックス順
  • se1=pd.Series(np.arange(10,13),index=[1,3,2])
    se1.sort_index()

    コード結果:
    1    10
    2    12
    3    11
    dtype: int32
    
  • は、文字インデックスを
  • にソートすることもできる.
    se2=pd.Series(np.arange(0,3),index=['c','d','a'])
    se2.sort_index()

    コード結果:
    a    2
    c    0
    d    1
    dtype: int32
    
  • 降順に並べ替える
  • se2.sort_index(ascending=False)

    コード結果:
    d    1
    c    0
    a    2
    dtype: int32
    
  • 値順
  • se3=pd.Series([3,-5,7])
    se3.sort_values()

    コード結果:
    1   -5
    0    3
    2    7
    dtype: int64
    
  • NaN値はSeries末尾の
  • に配置されます.
    se4=pd.Series([3,np.nan,-7,np.nan,5])
    se4.sort_values()

    コード結果:
    2   -7.0
    0    3.0
    4    5.0
    1    NaN
    3    NaN
    dtype: float64
    

    二、データフレームの並べ替え
  • axisパラメータにより任意の軸を並べ替えることができる
  • .
    df1=pd.DataFrame(np.arange(9).reshape(3,3),index=list("bac"),columns=list("yzx"))
    df1
    コード結果:
    y
    z
    x
    b
    0
    1
    2
    a
    3
    4
    5
    c
    6
    7
    8
    df1.sort_index()
    コード結果:
    y
    z
    x
    a
    3
    4
    5
    b
    0
    1
    2
    c
    6
    7
    8
    df1.sort_index(axis=1)
    コード結果:
    x
    y
    z
    b
    2
    0
    1
    a
    5
    3
    4
    c
    8
    6
    7
  • は、1つのカラムの値に基づいて
  • をソートする.
    df2=pd.DataFrame({'a':[20,3,3],'b':[1,-6,18]})
    df2.sort_values(by='b')
    コード結果:
    a
    b
    1
    3
    -6
    0
    20
    1
    2
    3
    18
  • 複数の列を並べ替える
  • df2.sort_values(by=['a','b'])
    コード結果:
    a
    b
    1
    3
    -6
    2
    3
    18
    0
    20
    1
    三、ランキング
    ランキングは、SeriesオブジェクトまたはDataFrameのいくつかの列の値に基づいてランキングする.rank(method=,ascending=,...)は、値のランキングを返します.しかし、同じ値が現れるのをどのように処理するかに注意する必要があります.
  • 平均
  • 同じ値に平均順位を割り当てる
    se5=pd.Series([2,3,7,5,3,7])
    se5.rank()

    コード結果:
    0    1.0
    1    2.5
    2    5.5
    3    4.0
    4    2.5
    5    5.5
    dtype: float64
    
  • 順位
  • 同じ値に対して表示される順序でランク付け
    se5.rank(method="first")

    コード結果:
    0    1.0
    1    2.0
    2    5.0
    3    4.0
    4    3.0
    5    6.0
    dtype: float64
    
  • 最小値ランキング
  • 同じ値に対して小さい順位をとる
    se5.rank(method="min",ascending=False)

    コード結果:
    0    6.0
    1    4.0
    2    1.0
    3    3.0
    4    4.0
    5    1.0
    dtype: float64
    
  • 最大値ランキング
  • 同じ値に対して大きな順位をとる
    se5.rank(method="max",ascending=False)

    コード結果:
    0    6.0
    1    5.0
    2    2.0
    3    3.0
    4    5.0
    5    2.0
    dtype: float64
    
  • 降順
  • se5.rank(method="first",ascending=False)

    コード結果:
    0    6.0
    1    4.0
    2    1.0
    3    3.0
    4    5.0
    5    2.0
    dtype: float64
    

    皆さんの閲覧に感謝して、私の努力があなたを助けることができることを望んで、共に努力します!