Maison > développement back-end > Tutoriel Python > Comment diviser les valeurs séparées par des virgules en plusieurs lignes dans les DataFrames Pandas ?

Comment diviser les valeurs séparées par des virgules en plusieurs lignes dans les DataFrames Pandas ?

Mary-Kate Olsen
Libérer: 2024-10-28 08:40:03
original
783 Les gens l'ont consulté

How to Split Comma-Separated Values into Multiple Rows in Pandas DataFrames?

Diviser la cellule en plusieurs lignes dans les dataframes Pandas

Lorsque vous traitez des valeurs séparées par des virgules dans les dataframes Pandas, les convertir dans leurs propres lignes peut être nécessaire pour une analyse plus approfondie. Voici comment y parvenir :

Pour les Pandas >= 0,25 :

Cette méthode simplifie le processus :

<code class="python">(df.set_index(['order_id', 'order_date'])
   .apply(lambda x: x.str.split(',').explode())
   .reset_index())                                                   

   order_id order_date package package_code
0         1  20/5/2018      p1         #111
1         1  20/5/2018      p2         #222
2         1  20/5/2018      p3         #333
3         3  22/5/2018      p4         #444
4         7  23/5/2018      p5         #555
5         7  23/5/2018      p6         #666</code>
Copier après la connexion

Pour Pandas <= 0,24 :

Pour les versions antérieures de Pandas, une approche différente est nécessaire :

<code class="python">(df.set_index(['order_date', 'order_id'])
   .stack()
   .str.split(',', expand=True)
   .stack()
   .unstack(-2)
   .reset_index(-1, drop=True)
   .reset_index()
)

  order_date  order_id package package_code
0  20/5/2018         1      p1         #111
1  20/5/2018         1      p2         #222
2  20/5/2018         1      p3         #333
3  22/5/2018         3      p4         #444
4  23/5/2018         7      p5         #555
5  23/5/2018         7      p6         #666</code>
Copier après la connexion

Détails :

Les deux Les méthodes impliquent plusieurs étapes :

  • Définissez les colonnes non fractionnées comme index.
  • Divisez les valeurs par virgules à l'aide de str.split.
  • Empilez les valeurs divisées en lignes .
  • Décochez pour déplacer les valeurs fractionnées dans des colonnes séparées.
  • Réinitialisez l'index final.

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