ホームページ > バックエンド開発 > Python チュートリアル > Pandas でグループ化された値を区切り文字を使用して効率的に結合するにはどうすればよいですか?

Pandas でグループ化された値を区切り文字を使用して効率的に結合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-16 19:55:18
オリジナル
346 人が閲覧しました

How to Efficiently Join Grouped Values in Pandas with a Delimiter?

Pandas で区切り文字を使用してグループ化された値を結合する

groupby 関数を使用して複数の値を持つデータをグループ化すると、一般的に次の問題が発生します。これらの値を区切り文字なしで連結します。これを解決するには、agg メソッドを利用できます。

次の DataFrame について考えます。

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

col 列に基づいてこれらの行をグループ化し、val 列の値を連結するには、次を使用します。次のコード:

import pandas as pd
df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']})
grouped = df.groupby('col')['val'].agg('-'.join)
ログイン後にコピー

このアプローチでは、目的の結果が得られます。 result:

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

ただし、apply メソッドが代替として使用される場合、以下に示すように、ハイフンでつながれた値が複数回発生する予期しない結果が生じる可能性があります。

df.groupby('col')['val'].apply(lambda x: '-'.join(x))

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

この問題を回避するには、上記の例で示したように、代わりに agg メソッドを使用します。

さらに、グループ化インデックスまたは MultiIndex を次のように変換します。通常の列の場合は、reset_index メソッドを使用できます:

df1 = grouped.reset_index(name='new')
ログイン後にコピー

以上がPandas でグループ化された値を区切り文字を使用して効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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