😎

【Pandas tips】Pandasで行の平均値ソート

2022/01/08に公開

ソースコード

元々mean列を作ったりしていたが、df.mean(axis=1).sort_values(ascending=False).keys() で順番の直接抽出ができる。ちょっと長いので、関数形式で公開。

def sort_row_mean(df):
    return df.loc[df.mean(axis=1).sort_values(ascending=False).keys(), :]


irisデータセットの平均値が高い順にソートしてみる。

  • ソースコード
import pandas as pd
from sklearn import datasets

def sort_row_mean(df):
    return df.loc[df.mean(axis=1).sort_values(ascending=False).keys(), :]


iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)

sort_row_mean(df)
  • 出力
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
117 7.7 3.8 6.7 2.2
131 7.9 3.8 6.4 2.0
118 7.7 2.6 6.9 2.3
109 7.2 3.6 6.1 2.5
105 7.6 3.0 6.6 2.1
... ... ... ... ...
42 4.4 3.2 1.3 0.2
8 4.4 2.9 1.4 0.2
38 4.4 3.0 1.3 0.2
13 4.3 3.0 1.1 0.1
41 4.5 2.3 1.3 0.3

Discussion