Maison >développement back-end >Tutoriel Python >Comment concaténer des chaînes de plusieurs lignes Pandas DataFrame à l'aide de GroupBy ?

Comment concaténer des chaînes de plusieurs lignes Pandas DataFrame à l'aide de GroupBy ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 14:05:13470parcourir

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

Concaténation de chaînes de plusieurs lignes à l'aide de Pandas GroupBy

Pour concaténer des chaînes de plusieurs lignes dans une colonne à l'aide du groupby de Pandas, nous pouvons exploiter un combinaison de techniques de groupby et de transformation.

Considérez l'ensemble de données suivant, où nous souhaitons concaténer les Colonne "texte" pour chaque groupe de "nom" et "mois":

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)

Pour concaténer la colonne "texte" pour chaque groupe de "nom" et "mois", on peut utiliser la fonction groupby :

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

Alternativement, nous pouvons utiliser la fonction apply et réinitialiser l'index :

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

Cela entraînera une nouvelle colonne où le Les valeurs "texte" sont concaténées pour chaque groupe :

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

En utilisant les techniques de transformation groupby, nous pouvons concaténer efficacement des chaînes de plusieurs lignes, améliorant ainsi l'analyse et la présentation des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn