Pandas DataFrame DataFrame.sort_values()関数
-
pandas.DataFrame.sort_values()
の構文: -
コード例:単一の列に基づいて Pandas
pandas.DataFrame.sort_values()
で DataFrame を並べ替えます -
サンプルコード:複数の列に基づいて Pandas
DataFrame.sort_values()
で DataFrame を並べ替えます -
コード例:Pandas
DataFrame.sort_values()
を使用して降順で DataFrame を並べ替えます -
コード例:Pandas
DataFrame.sort_values()
でNaN
を最初に配置して DataFrame を並べ替えます
Pandas DataFrame.sort_values()
メソッドは、呼び出し元の DataFrame
を、いずれかのインデックスに沿って、指定された列の値で昇順または降順に並べ替えます。
pandas.DataFrame.sort_values()
の構文:
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind="quicksort",
na_position="last",
ignore_index=False,
)
パラメーター
by |
ソートする名前または名前のリスト |
axis |
行(axis = 0 )または列(axis = 1 )に沿って並べ替えます |
ascending |
昇順 で並べ替え(ascending = True )または降順 (ascending = False ) |
inplace |
ブール。True の場合、呼び出し元の DataFrame をインプレースで変更します |
kind |
使用するソートアルゴリズム。デフォルト: quicksort |
na_position |
NaN 値を最初(na_position=first )または最後(na_position=last )に配置します |
ignore_index |
ブール。True の場合、元の DataFrame のインデックスは無視されます。デフォルト値は False で、インデックスが使用されます。バージョン 1.0.0 の新機能 |
戻り値
inplace
が True
の場合、並べ替えられた DataFrame
を返します。それ以外の場合は None
。
コード例:単一の列に基づいて Pandas pandas.DataFrame.sort_values()
で DataFrame を並べ替えます
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'])
print("After Sorting:")
print(sorted_df)
出力:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
Date Sales Price
1 April-11 300 1
2 April-12 400 2
5 April-16 300 2
0 April-10 200 3
4 April-14 300 3
3 April-13 200 4
DataFrame df
を列 Price
の値で昇順(デフォルト)にソートします。
並べ替えられた DataFrame
のインデックスは、元の DataFrame
と同じままです。
ソートされた DataFrame
に新しいインデックス列を含める場合は、ignore_index
(バージョン 1.0.0 から導入)を True
に設定できます。
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]
df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})
print("Before Sorting:")
print(df)
sorted_df = df.sort_values(by=["Price"], ignore_index=True)
print("After Sorting:")
出力:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-11 300 1
1 April-12 400 2
2 April-16 300 2
3 April-10 200 3
4 April-14 300 3
5 April-13 200 4
ここでは、ignore_index = True
を使用して行に新しいインデックスを割り当て、元の DataFrame
のインデックスを無視します。
サンプルコード:複数の列に基づいて Pandas DataFrame.sort_values()
で DataFrame を並べ替えます
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
df.sort_values(by=['Sales','Price'],
ignore_index=True,
inplace=True)
print("After Sorting:")
print(df)
出力:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-10 200 3
1 April-13 200 4
2 April-11 300 1
3 April-16 300 2
4 April-14 300 3
5 April-12 400 2
ここでは、最初に Sales
が最初に昇順で並べ替えられ、次に各 Sales
の Price
も昇順で並べ替えられます。
df
では、 200
は Sales
列の最小値であり、 3
は 200
の Sales
値の Price
列の最小値です。
したがって、Sales
列が 200
で Price
が 3
の行が一番上になります。
inplace = True
により、sort_values()
関数を呼び出した後に元の DataFrame
が変更されます。
コード例:Pandas DataFrame.sort_values()
を使用して降順で DataFrame を並べ替えます
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Sales'],
ignore_index=True,
ascending=False)
print("After Sorting:")
print(sorted_df)
出力:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-12 400 2
1 April-11 300 1
2 April-14 300 3
3 April-16 300 2
4 April-10 200 3
5 April-13 200 4
DataFrame df
を列 Sales
の値の降順で並べ替えます。
400
は Sales
列の最大値です。したがって、エントリは一番上に移動し、他の行はそれに応じてソートされます。
コード例:Pandas DataFrame.sort_values()
で NaN
を最初に配置して DataFrame を並べ替えます
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'],ignore_index=True,na_position='first')
print("After Sorting:")
print(sorted_df)
出力:
Before Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-11 300 1.0
2 April-12 400 2.0
3 April-13 200 4.0
4 April-14 300 3.0
5 April-16 300 NaN
After Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-16 300 NaN
2 April-11 300 1.0
3 April-12 400 2.0
4 April-14 300 3.0
5 April-13 200 4.0
デフォルトでは、並べ替え後、NaN
値は DataFrame
の最後に配置されます。
しかし、na_position = first
を設定することで、NaN
値を DataFrame
の先頭に配置できます。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn