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

Patricia Arquette
リリース: 2024-10-19 11:46:01
オリジナル
416 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!