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

Pandas Groupby を使用して値を区切り文字で結合するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-09 15:49:14830ブラウズ

How Can I Use Pandas Groupby to Join Values with a Delimiter?

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

Pandas ライブラリを使用すると、groupby 関数を使用して複数の値を持つ行をグループ化できます。ただし、デフォルトでは、値は区切り文字なしで連結されます。この記事では、各グループ内の値を区切るために区切り文字を導入する問題について説明します。

最初は apply() 関数を使用して値をダッシュ​​ (-) で結合しようとしましたが、その結果、全体が個々の値を区切るのではなく、文字列が連結されます。

より簡単な方法は、結合パラメーターを指定して agg() 関数を使用することです。目的の出力を実現する方法は次のとおりです。

group = df.groupby('col')['val'].agg('-'.join)

これにより、ダッシュを区切り文字として使用して各グループ内の値が結合されます。結果は次のようになります:

col
A    Cat-Tiger
B     Ball-Bat

インデックスは出力にまだ存在することに注意してください。インデックスを列に変換したい場合は、reset_index() 関数を使用できます。

df1 = group.reset_index(name='new')

これにより、インデックスが new という名前の新しい列に変換されます。最終的な出力は次のようになります:

  col  new
0   A  Cat-Tiger
1   B  Ball-Bat

あるいは、squeeze() 関数 (この関数は Pandas 1.4.0 では_nunique 関数として作成されたことに注意してください) を使用してインデックスを完全に削除し、Series オブジェクトを取得することもできます。

group.squeeze()

これにより、グループ化された値が指定された値で結合されたシリーズが生成されます。区切り文字:

col
A    Cat-Tiger
B     Ball-Bat
Name: val

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

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