ホームページ >バックエンド開発 >Python チュートリアル >df.groupby().transform() を使用してグループ化されたデータフレームを効果的に結合する方法

df.groupby().transform() を使用してグループ化されたデータフレームを効果的に結合する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-19 12:29:29340ブラウズ

How to Combine Grouped Dataframes Effectively Using df.groupby().transform()?

Groupby データフレームと df.groupby().transform() の結合

パンダ データフレームを扱う場合、多くの場合、次の操作を実行する必要があります。値のグループ化や統計の計算など、データのサブセット。ただし、これらの操作の結果を結合して元のデータフレームに戻すのは面倒な場合があります。

この課題に対処するには、次のシナリオを検討してください。

問題: 2 つの列「c」と「type」を持つデータフレームがあります。目標は、「c」ごとに「type」の値をカウントし、「c」のサイズでデータフレームに列を追加することです。

アプローチ 1 (マップの使用):

1 つのアプローチは、シリーズ内の各値に関数を適用する、map() 関数を使用することです。この場合、「c」のサイズをデータフレーム内の対応する「c」値にマッピングできます。

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

このアプローチは機能しますが、複数の手順と手動のインデックス調整が必要です。

アプローチ 2 (Transform を使用する):

より簡単な解決策は、pandas の transform() 関数を使用することです。これは、データフレームの各行に関数を適用し、次のように位置合わせされた Series を返します。オリジナルのインデックス。変換を使用して、'c' のサイズをデータフレームに直接追加できます:

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

このアプローチにより、個別のサイズ計算とインデックスの位置合わせの必要がなくなり、より簡潔で効率的なソリューションが得られます。

以上がdf.groupby().transform() を使用してグループ化されたデータフレームを効果的に結合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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