ホームページ >バックエンド開発 >Python チュートリアル >GroupBy を使用して複数の Pandas DataFrame 行の文字列を連結するにはどうすればよいですか?

GroupBy を使用して複数の Pandas DataFrame 行の文字列を連結するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 14:05:13470ブラウズ

How to Concatenate Strings from Multiple Pandas DataFrame Rows using GroupBy?

Pandas GroupBy を使用した複数の行の文字列の連結

Pandas の groupby を使用して列内の複数の行の文字列を連結するには、 groupby と変換テクニックの組み合わせ。

次のことを検討してください。 「名前」と「月」の各グループの「テキスト」列を連結するデータセット:

import pandas as pd
from io import StringIO

data = StringIO(
    "\n".join([
        '"name1","hej","2014-11-01"',
        '"name1","du","2014-11-02"',
        '"name1","aj","2014-12-01"',
        '"name1","oj","2014-12-02"',
        '"name2","fin","2014-11-01"',
        '"name2","katt","2014-11-02"',
        '"name2","mycket","2014-12-01"',
        '"name2","lite","2014-12-01"'
    ])
)

# Load and process the data
df = pd.read_csv(data, header=0, names=["name", "text", "date"], parse_dates=["date"])
df["month"] = df["date"].apply(lambda x: x.month)

「名前」と「月」の各グループの「テキスト」列を連結するには"、groupby 関数を使用できます:

df['text'] = df[['name','text','month']].groupby(['name','month'])['text'].transform(lambda x: ','.join(x))

または、apply 関数を使用して、 Index:

df.groupby(['name','month'])['text'].apply(','.join).reset_index()

これにより、各グループの「テキスト」値が連結された新しい列が作成されます:

    name  month         text
0  name1     11           du
1  name1     12        aj,oj
2  name2     11     fin,katt
3  name2     12  mycket,lite

groupby 変換手法を利用することで、効率的に連結できます。複数の行から文字列を取得し、データ分析とプレゼンテーションを強化します。

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

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