Comment puis-je diviser des chaînes de texte en plusieurs lignes en fonction de délimiteurs spécifiques à l'aide de Pandas ?

Barbara Streisand
Libérer: 2024-11-10 08:40:03
original
374 Les gens l'ont consulté

How can I split text strings into multiple rows based on specific delimiters using Pandas?

Méthode Pandas pour diviser le texte en plusieurs lignes

Problème :
Un gros fichier CSV contient une colonne avec des chaînes de texte qui doivent être divisées en plusieurs lignes en fonction de délimiteurs spécifiques. L'objectif est de créer des lignes distinctes pour chaque ensemble de texte fractionné.

Solution utilisant Pandas :

  1. Divisez le texte par le premier délimiteur (espace) en utilisant str.split(' ').
  2. Appliquez la fonction apply() pour diviser chaque chaîne de la liste par le deuxième délimiteur (deux-points) et convertir en une série.
  3. Utilisez stack() pour transformer le DataFrame résultant en une seule colonne et réinitialiser l'index.
  4. Renommer la colonne en 'Seatblocks'.
  5. Supprimer la colonne "Seatblocks" d'origine du DataFrame.
  6. Rejoignez la nouvelle colonne "Seatblocks" à la colonne d'origine DataFrame.

Divisé par espace et deux points :

s = df['Seatblocks'].str.split(' ').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Seatblocks'
del df['Seatblocks']
df.join(s)
Copier après la connexion

Exemple de sortie :

   CustNum     CustomerName  ItemQty Item  ItemExt  Seatblocks
0    32363  McCartney, Paul        3  F04       60  2:218:10:4,6
1    31316     Lennon, John       25  F01      300  1:13:36:1,12
1    31316     Lennon, John       25  F01      300  1:13:37:1,13
Copier après la connexion

Divisé par Deux points :

df.join(s.apply(lambda x: Series(x.split(':'))))
Copier après la connexion

Exemple de sortie :

   CustNum     CustomerName  ItemQty Item  ItemExt  0    1   2     3
0    32363  McCartney, Paul        3  F04       60  2  218  10   4,6
1    31316     Lennon, John       25  F01      300  1   13  36  1,12
1    31316     Lennon, John       25  F01      300  1   13  37  1,13
Copier après la connexion

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