

表形式のデータを扱うのに便利な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関連の記事もあるので、もし気になるものがあれば見てみて欲しい。



