Pandasは12の並べ替えと順位を詳しく理解します
5121 ワード
約束:
ソートとランキング
SeriesオブジェクトまたはDataFrameオブジェクトの値を条件に従ってソート(sorting)およびランク付け(ranking)することは、重要な組み込み演算です.次にpandasオブジェクトの使い方を紹介します:sort_index()/sort_values()/rank()メソッド.
一、Seriesの並べ替え
Seriesオブジェクトのソートは最も一般的で、Seriesオブジェクトのインデックス、値に基づいてソートできます.インデックス順
コード結果:は、文字インデックスを にソートすることもできる.
コード結果:降順に並べ替える
コード結果:値順
コード結果: NaN値はSeries末尾の に配置されます.
コード結果:
二、データフレームの並べ替え axisパラメータにより任意の軸を並べ替えることができる .
y
z
x
b
0
1
2
a
3
4
5
c
6
7
8
y
z
x
a
3
4
5
b
0
1
2
c
6
7
8
x
y
z
b
2
0
1
a
5
3
4
c
8
6
7は、1つのカラムの値に基づいて をソートする.
a
b
1
3
-6
0
20
1
2
3
18複数の列を並べ替える
a
b
1
3
-6
2
3
18
0
20
1
三、ランキング
ランキングは、SeriesオブジェクトまたはDataFrameのいくつかの列の値に基づいてランキングする.rank(method=,ascending=,...)は、値のランキングを返します.しかし、同じ値が現れるのをどのように処理するかに注意する必要があります.平均 同じ値に平均順位を割り当てる
コード結果:順位 同じ値に対して表示される順序でランク付け
コード結果:最小値ランキング 同じ値に対して小さい順位をとる
コード結果:最大値ランキング 同じ値に対して大きな順位をとる
コード結果:降順
コード結果:
皆さんの閲覧に感謝して、私の努力があなたを助けることができることを望んで、共に努力します!
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
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
二、データフレームの並べ替え
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
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
皆さんの閲覧に感謝して、私の努力があなたを助けることができることを望んで、共に努力します!