Maison > développement back-end > Tutoriel Python > Comment puis-je diviser les chaînes séparées par des virgules dans un DataFrame Pandas en lignes distinctes ?

Comment puis-je diviser les chaînes séparées par des virgules dans un DataFrame Pandas en lignes distinctes ?

Mary-Kate Olsen
Libérer: 2025-01-01 02:21:08
original
340 Les gens l'ont consulté

How Can I Split Comma-Separated Strings in a Pandas DataFrame into Separate Rows?

Diviser les chaînes de trames de données Pandas séparées par des virgules en lignes séparées

Dans les trames de données Pandas, il est souvent constaté qu'une ou plusieurs colonnes contiennent des virgules. valeurs séparées (CSV) qui doivent être divisées en lignes individuelles. Pour y parvenir, plusieurs approches peuvent être employées :

Utilisation de Series.explode() ou DataFrame.explode() :

Cette méthode est disponible dans Pandas 0.25.0 et supérieur et est spécialement conçu pour exploser des colonnes de type liste.

df.explode('column_name')
Copier après la connexion

Utilisation d'un fichier vectoriel Fonction :

Pour les situations impliquant plusieurs colonnes normales et plusieurs colonnes de liste, une fonction vectorisée peut fournir une solution plus polyvalente.

def explode(df, lst_cols, fill_value='', preserve_index=False):
    # ... (implementation details)
Copier après la connexion

Conversion de chaînes CSV en listes:

Si l'objectif est uniquement de convertir des chaînes CSV en listes, cela peut être réalisé en divisant les chaînes à l'aide de str.split().

df['var1'] = df['var1'].str.split(',')
Copier après la connexion

Approche vectorisée personnalisée :

Cette approche peut gérer plusieurs colonnes, y compris les colonnes normales et de liste.

exploded_df = pd.DataFrame({
    col: np.repeat(x[col].values, x[lst_col].str.len())
    for col in x.columns.difference([lst_col])
}).assign(**{lst_col: np.concatenate(x[lst_col].values)})[x.columns.tolist()]
Copier après la connexion

Solution héritée :

Une méthode antérieure consiste à utiliser .set_index(), .str.split(), .stack() et .reset_index() pour diviser les chaînes CSV et les empiler en lignes individuelles.

Ces approches offrent diverses options pour diviser les chaînes CSV séparées par des virgules. chaînes dans les dataframes Pandas, répondant à des exigences spécifiques et à des considérations de performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal