ホームページ > バックエンド開発 > Python チュートリアル > Pandas Groupby 結果内の文字列を効率的に結合するにはどうすればよいですか?

Pandas Groupby 結果内の文字列を効率的に結合するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-16 15:22:11
オリジナル
883 人が閲覧しました

How to Efficiently Join Strings Within Pandas Groupby Results?

区切り文字結合を使用した Pandas groupby

Pandas では、重複する値を含むデータを操作するときに groupby 関数を使用すると便利です。ただし、グループ内の個別の値を保持しながら要約された値を取得したい場合は、カスタム結合操作の実装が必要になる場合があります。

次の例を検討してください。

col  val
A    Cat
A    Tiger
B    Ball
B    Bat
ログイン後にコピー

を使用する場合groupby 関数を使用して、「col」内の各一意の値の「val」列を合計すると、次の出力が生成されます。

A CatTiger
B BallBat
ログイン後にコピー

結合された値に区切り文字 (例: '-') を追加するには、次のコードを使用できます:

df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
ログイン後にコピー

ただし、このアプローチは予期しない結果につながります:

A C-a-t-T-i-g-e-r
B B-a-l-l-B-a-t
ログイン後にコピー

問題これは、ラムダ関数が、連結された値ではなく、「val」列からの個々の値を含む Series オブジェクトを受け取るために発生します。 string.

次の代替アプローチを使用して、区切り文字で結合された目的の出力を実現できます。

df.groupby('col')['val'].agg('-'.join)
ログイン後にコピー

これにより、出力が得られます。

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object
ログイン後にコピー

列にインデックスまたは MultiIndex を適用するには、reset_index 関数を使用できます:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
ログイン後にコピー

以上がPandas Groupby 結果内の文字列を効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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