Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python – Pandasデータフレームをグループ化し、グループサイズで昇順に並べ替える方法

Pandasデータフレームをグループ化するには groupby() を使用します。グループ化されたデータフレームを昇順に並べ替えるには sort_values() を使い、各グループのサイズ(件数)を取得するには size() メソッドを使用します。

昇順でソートする場合は、sort_values() に対して次のように指定します。

ascending=True

データフレームの作成

まず、サンプル用のPandasデータフレームを作成します。

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],

      "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
   }
)

グループ化して昇順にソートする

次に、「Reg_Price」列を基準にグループ化し、その結果を昇順に並べ替えます。

dataFrame.groupby('Reg_Price').size().sort_values(ascending=True)

完全なコード例

以下に、一連の処理をまとめたコード全体を示します。

import pandas as pd

# Reg_Price列を含むデータフレームを作成
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],

      "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
   }
)

print("DataFrame...\n", dataFrame)

# Reg_Price列でグループ化し、昇順にソート
print("\n昇順にソートした結果...")
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=True))

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame...
        Car  Reg_Price
0       BMW       1000
1      Lexus       1400
2       Audi       1000
3   Mercedes        900
4     Jaguar       1700
5    Bentley        900

昇順にソートした結果...
Reg_Price
1400    1
1700    1
900     2
1000    2
dtype: int64

結果の読み方

出力の左側にある「Reg_Price」の値はグループ化のキー(登録価格)を、右側の数値はその価格に該当する車の台数、すなわちグループサイズを表しています。昇順ソートにより、台数の少ないグループから順に表示され、同じ台数の場合はキーの値の順に並びます。このように groupby() → size() → sort_values() の流れを組み合わせることで、カテゴリ別の件数を簡単にランキング形式で確認できます。

  1. 【Python】Name列を基準にDataFrameを降順に並べ替えるプログラムの作成方法

    はじめにpandasのDataFrameを特定の列(ここでは「Name」列)を基準に降順で並べ替える方法を解説します。データ分析では、名前のアルファベット順や数値の大小に応じてデータを整理したい場面がよくあります。そんなときに活躍するのが sort_values() メソッドです。入力データ以下のサンプルDataFrameを想定します。 Id Name 0 1 Adam 1 2 Michael 2 3 David 3 4 Jack 4 5 Peter出力結果Name列を基準に降順でソートすると、次のようになります。 Id

  2. Pythonで連結リストを昇順にソートするプログラムの書き方

    問題の概要 連結リスト(リンクリスト)が与えられたとき、そのリストを昇順に並べ替えることを考えます。 例えば、入力が [5, 8, 4, 1, 5, 6, 3] の場合、出力は [1, 3, 4, 5, 5, 6, 8] となります。 解決のアプローチ この問題は、以下の手順で解くことができます。 新しい空のリスト values を用意します。 head に先頭ノードへの参照を保存しておきます。 node が null でない間、次の処理を繰り返します。 node の値を values の末尾に追加します。 node を次のノードに進めます。 values を昇順にソートします。 v