Maison >développement back-end >Tutoriel Python >Comment concaténer des chaînes de plusieurs lignes Pandas DataFrame à l'aide de 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!