ホームページ > バックエンド開発 > Python チュートリアル > グループ化された Pandas DataFrame から文字列の結合を効率的に抽出する方法は?

グループ化された Pandas DataFrame から文字列の結合を効率的に抽出する方法は?

Patricia Arquette
リリース: 2024-10-25 05:48:29
オリジナル
1090 人が閲覧しました

How to Efficiently Extract the Union of Strings from Grouped Pandas DataFrames?

Pandas GroupBy の文字列の結合

この質問は、特定のグループ化された Pandas DataFrame から文字列の結合を抽出するという共通の課題に対処します。カラム。残念ながら、文字列を含む列に対して sum() 関数を使用しても、文字列は連結されません。代わりに、この記事では、望ましい結果を達成するための代替方法を検討します。

カスタム関数での GroupBy の使用

解決策の 1 つは、特定の操作を適用するカスタム関数を定義することです。各グループへ。たとえば、apply() メソッドを使用してグループを反復処理し、必要な値を返すことができます。方法は次のとおりです。

<code class="python">def my_function(group):
    return "{%s}" % ', '.join(group['C'])</code>
ログイン後にコピー

この関数は、各グループの「C」列の文字列を中括弧で囲まれたセットに結合します。

<code class="python">df.groupby('A')['C'].apply(my_function)</code>
ログイン後にコピー

ラムダで GroupBy を使用するExpression

より単純な構文には、ラムダ式の使用が含まれます。

<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))</code>
ログイン後にコピー

このラムダ式は、カスタム関数と同じ連結操作を実行します。

グループの結合

複数のグループの情報を 1 つのシリーズに結合すると便利な場合があります。以下に例を示します。

<code class="python">def f(group):
    return Series(dict(A=group['A'].sum(),
                       B=group['B'].sum(),
                       C="{%s}" % ', '.join(group['C'])))</code>
ログイン後にコピー

この関数は、sum() を使用して 'A' 列と 'B' 列を集計し、'C' 列を 1 つのセットに結合します。

<code class="python">df.groupby('A').apply(f)</code>
ログイン後にコピー

Thisこのアプローチにより、各グループの集計値を含む DataFrame が生成されます。

これらのメソッドを採用すると、グループ化された Pandas DataFrame から文字列の結合を効果的に抽出でき、テキストベースのデータを有意義な方法で分析および視覚化できるようになります。 .

以上がグループ化された Pandas DataFrame から文字列の結合を効率的に抽出する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート