ホームページ >バックエンド開発 >Python チュートリアル >Pandas でグループ化された DataFrame に集計列を追加する方法

Pandas でグループ化された DataFrame に集計列を追加する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 11:46:01514ブラウズ

How to Add Aggregated Columns to Grouped DataFrames in Pandas?

Pandas でグループ化された DataFrame に列を追加する

Pandas でデータフレームを操作する場合、多くの場合、データをグループ化し、データフレーム内の値を集計する必要があります。グループ。通常、これには、集計結果を含む別のデータフレームの作成が含まれます。ただし、これらの集計列を元のデータフレームに直接追加すると便利な場合もあります。

簡単なデータフレームの例でこれを説明してみましょう。

<code class="python">df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})</code>

「type」の値をカウントするには「c」の各値に対して、次のコードを使用できます。

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')</code>

これにより、3 つの列を持つ新しいデータフレーム 'g' が作成されます: 'c'、'type'、および 't' は、各 'c' 内の各 'type' の数。

次に、'size()' メソッドを使用して各グループ内の行数を数えます。

<code class="python">a = df.groupby('c').size().reset_index(name='size')</code>

これ2 つの列を持つ新しいデータフレーム 'a' を作成します: 'c' と、各 'c' グループの行数を含む 'size'。

元のデータフレームに 'size' 列を追加するには、1 つのオプションがあります。質問に示されているように、「map()」関数を使用することです。ただし、より簡単なアプローチは、「transform()」メソッドを使用することです。

<code class="python">g['size'] = df.groupby('c')['type'].transform('size')</code>

「transform()」メソッドは、元のデータフレームに合わせたインデックスを持つ Series を返します。このシリーズをグループ化されたデータフレームの新しい列に割り当てることで、集計された値を元のデータフレームに効果的に追加します。

結果のデータフレーム 'g' には、追加の 'size' 列が含まれるようになります。

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

このアプローチは、Pandas のグループ化されたデータフレームに集計列を追加する簡単かつ効率的な方法を提供します。

以上がPandas でグループ化された DataFrame に集計列を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。