ホームページ >バックエンド開発 >Python チュートリアル >区切り文字を使用して Pandas GroupBy グループ内の値を効率的に連結するにはどうすればよいですか?
区切り文字結合子を使用した Pandas GroupBy
Pandas で複数の値を使用してデータをグループ化する場合、特定の区切り文字。ただし、単純な groupby および sum 操作では、必要な区切り文字のない望ましくない出力が発生する可能性があります。
次のコードを考えてみましょう。
import pandas as pd df = pd.read_csv("Inputfile.txt", sep='\t') group = df.groupby(['col'])['val'].sum() # Output: # A CatTiger # B BallBat
これにより、連結された値を含む単一の文字列が生成されます。
目的の出力を実現するには、apply 関数を以下と組み合わせて利用できます。 join:
group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
ただし、この解決策でも、各値に不要な文字が含まれているため、期待どおりの出力が得られない可能性があります。
代替解決策
代わりに、結合パラメータを指定して agg 関数を使用することを検討してください。
df.groupby('col')['val'].agg('-'.join)
これは正しく動作します。ハイフン区切り文字を使用してグループ内の値を連結し、目的の出力を提供します。
col A Cat-Tiger B Ball-Bat Name: val, dtype: object
ソリューションの更新
MultiIndex または Index 列を処理するには、インデックスをリセットできます。そして、reset_index 関数を使用して名前を変更します。
df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
これにより、 「new」という名前の新しい列にインデックスを付けて、グループ化されたデータをさらに操作する便利な方法を提供します。
以上が区切り文字を使用して Pandas GroupBy グループ内の値を効率的に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。