Pandas Groupby 平均

Pandas Groupby Ping Jun



2 つ以上の値を加算し、それらの合計を加算した値の総数で割ると、結果は平均になります。 Pandas Mean は、指定された軸に沿ったデータまたは値の平均を返します。 mean() メソッドがデータフレームに適用される場合、軸全体の平均を含むシリーズが pandas によって返されます。シリーズで「mean()」が使用されている場合、パンダは数値 (単一の数値) を返します。カテゴリのグループを作成した後、関数をカテゴリに適用できます。これは単純なアイデアですが、データ サイエンスで頻繁に適用される非常に効果的な手法です。これにより、各グループのデータの概要を作成し、グループ固有の変更を適用し、データ フィルタリングを実行できます。 groupby() 関数を使用すると、オブジェクトを分割し、関数を適用して、製品を組み合わせることができます。これで大規模なデータセットをグループ化し、グループに対して操作を実行できます。

パンダで groupby.mean() メソッドを使用するには?

データフレームの平均またはデータフレームの特定の列の平均を計算するには、groupby.mean() 関数を使用できます。次の例で、その使用方法を示します。







例 # 01: 1 つの列のデータをグループ化して、1 つの整数列の平均を決定する

pd.DataFrame() 関数を使用して、最初にデータフレームを作成します。これにより、データフレームの列または列のデータをグループに分割し、それらの平均値を見つけることができます。データ フレームを作成する前に、numpy ライブラリと共に pandas モジュールをインポートする必要があります。





ご覧のとおり、pandas ディクショナリを使用してデータフレームを作成しました。 df データフレームには、「items」、「manufacturer」、「quantity」の 3 つの列があります。 「アイテム」列には、値 (「シャツ」、「ネクタイ」、「パンツ」、「シャツ」、「ネクタイ」、「パンツ」、「シャツ」、「パンツ」、「パンツ」、「 「メーカー」列と「数量」列には、値 (「イタリア」、「フランス」、「中国」、「フランス」、「中国」、「イタリア」、「中国」、「イタリア」、 'フランス'、'中国') および (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) です。製造元の列の値をグループ化し、それぞれの製造元の平均数量値を決定しましょう。





メーカー値「中国」の平均数量値は 21.5、「フランス」の平均数量値は 20.0、「イタリア」の平均数量値は 32.0 です。 groupby.mean() 関数で reset_index 関数を使用して、出力へのインデックスを指定することもできます。



例 # 02: 1 つの列のデータをグループ化して、1 つの浮動小数点列の平均を求める

データをグループ化した後、整数列の平均を見つける方法を見てきました。それでは、float のような別のデータ型の列を試してみましょう。 pd.DataFrame() 関数を使用して、float 値を持つ列が少なくとも 1 つあるデータフレームが作成されます。

pd.DataFrame() 内に辞書を配置することで、3 つの列を持つデータフレームを作成しました。列「name」には、ランダムなプレイヤーの名前が格納されています (「Sam」、「Jay」、「Leo」、「Mike」、「Will」、「Billy」、「Jhonny」、「Lara」、「Hanna」、 「Tony」)、各プレイヤーが所属するチームを表す列「team」(「A」、「A」、「B」、「A」、「B」、「A」、「C」、「B」 '、'C'、'C')、'height' 列には各プレーヤーの身長が float 値 (5.6、5.4、6.3、5.2、5.5、6.4、5.6、5.8、6.0、5.2) として格納されています。 「チーム」列のデータをグループ化し、個別の「チーム」値ごとに平均身長値を決定しましょう。

チーム A の選手の平均身長値は 5.65 であるのに対し、チーム B と C の選手の平均身長値はそれぞれ 5.866 と 5.6 であることがわかります。

例 # 03: groupby.mean() 関数を使用して複数の列の平均を決定する

前の例では、1 つの列の平均を求めました。ただし、各グループの多数の列の平均も決定できます。 pandas と numpy モジュールをインポートした後、複数の数値列を持つデータフレームを作成しましょう。

新しく作成されたデータフレームには、「name」、「score」、および「matches」というラベルが付いた 3 つの列があります。データ値を文字列として持つ列名(「Ron」、「Jim」、「Dany」、「Jim」、「Jim」、「Dany」、「Ron」、「Ron」、「Dany」、「Jim」) )、一方、「スコア」と「一致」は (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) と (2, 3, 1, 2, 1, 3) の数値データで構成されます。 、4、1、2、1)。次に、列「name」のデータをグループ化した後、列「score」と「matches」の平均を見つけてみましょう。これには groupby.mean() 関数が使用されます。

グループ「Dany」の平均スコアは 2.00 試合で 2.66 であることがわかります。グループ Jim の平均スコアは 2.75 で、行われた試合の平均値は 1.75 です。グループ「ロン」の平均スコア値は 2.66 で、試合の平均値は 2.33 です。

オブジェクトによるカテゴリのグループの平均は、agg() メソッドを使用して計算することもできます。 agg() 関数の引数として平均値を指定します。特定の軸全体で単一または複数の操作を使用して集計するには、agg() 関数を使用できます。

出力は以前と同じです。

例 # 04: 複数の列をグループ化して特定の列の平均を決定する

例 1、2、および 3 では、1 つの列の値またはデータをグループ化しました。次に、groupby() 関数内の列ラベルのリストを使用して複数の列をグループ化し、各グループの平均値を見つけます。辞書「d」は、データフレームを作成するための入力として pd.Dataframe() 関数内に渡されます。

必要なデータフレームを作成しました。列「スポーツ」には、いくつかのスポーツの名前が格納されています (「バドミントン」、「フットボール」、「テニス」、「バスケットボール」、「フットボール」、「テニス」、「バスケットボール」、「フットボール」、「バドミントン」、「バスケットボール」、「バスケットボール」、「テニス」)、国名 (「中国」、「ロシア」、「イタリア」、「スペイン」、「ロシア」、「イタリア」、「中国」、「イタリア」、「スペイン」、「中国」、「ロシア」、「イタリア」) は「国」列に格納されます。一方、「勝利」列には、各スポーツで各国が勝利した試合数が保存されています (13、10、6、7、10、12、7、11、8、13、11、6)。 groupby.mean() 関数を使用して、列「sports」と「country」をグループ化して「win」列の値の平均を見つけてみましょう。

この関数は、国の各スポーツの「勝利」列の値の平均を正常に決定しました。 grouped-by データフレームは、reset_index() 関数を使用してリセットできます。これは、適切なデータフレーム構造を与える新しいインデックスも生成します。

各データフレームの行にインデックスが追加されます。結果を魅力的な表に配置するには、pivot() 関数も使用できます。

結論

このチュートリアルでは、数値の平均または平均とは何か、およびデータフレームの列をグループ化した後に特定の列 (1 つまたは複数) の平均を見つける方法について説明しました。この記事では、単一の列のデータをグループ化して単一の整数列または浮動小数点列の平均を求める方法を説明するために、いくつかの例を実装しました。 groupby.mean() 関数を使用して複数の列の平均を決定する方法;また、複数の列をグループ化して特定の列の平均を決定する方法。