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

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

Patricia Arquette
リリース: 2024-12-14 14:05:13
オリジナル
469 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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