表形式のデータを扱うのに便利なpandas.DataFrame
。
カラムには色々な型のデータを扱うことができ、True
と False
のbool型も扱うことができる。
データフレームは df.sort_values()
でソートできるが、True
と False
のどちらが先になるのか。
そこで今回はpandas.DataFrameでbool型カラムのソート順序について紹介する。
この記事を書いている人
記事を読むメリット
pandas.DataFrameでbool型カラムのソート順序がわかり、pandasでデータをソートするのが得意になる
データ準備
ソートの順がどうなるかは、試すのが手っ取り早い。
試すためのデータをまず用意する。
以下の内容のCSVを bool_sample.csv
として保存する。
CSV
"a",12,100,True
"b",13,105,True
"c",12,90,False
"d",13,85,False
そしてpandas.DataFrameとして読み込む。
DATA
import pandas as pd df1 = pd.read_csv("bool_sample.csv") print(df1) # id age score promotion_allowed # 0 a 12 100 True # 1 b 13 105 True # 2 c 12 90 False # 3 d 13 85 False print(df1["promotion_allowed"]) # 0 True # 1 True # 2 False # 3 False # Name: promotion_allowed, dtype: bool
見ての通り、 promotion_allowed
の列が True
とFalse
を持つbool型の列(カラム)になっている。
このデータを使って試してみる。
pandas.DataFrameでbool型カラムのソート順序
結論を言えば、pandas.DataFrameでbool型カラムのソート順序は False
が先になる。
試すには df.sort_values()
を用いる。
SAMPLE
print(df1.sort_values("promotion_allowed")) # id age score promotion_allowed # 2 c 12 90 False # 3 d 13 85 False # 0 a 12 100 True # 1 b 13 105 True print(df1.sort_values("promotion_allowed", ascending=False)) # id age score promotion_allowed # 0 a 12 100 True # 1 b 13 105 True # 2 c 12 90 False # 3 d 13 85 False
df.sort_values()
を使うと↑のように False
が先になる。
逆に ascending=False
を指定して降順にすると True
が先になる。
デフォルトはascending=Trueです。False内部では0であるため最初に配置されます。
参考:python-PandasDataFrameのブール値の並べ替え列-スタックオーバーフロー
他にもpandas関連の記事もあるので、もし気になるものがあれば見てみて欲しい。