Maison >développement back-end >Tutoriel Python >Comment diviser une cellule en plusieurs lignes dans une trame de données Pandas en fonction de valeurs séparées par des virgules ?
Diviser la cellule en plusieurs lignes dans la trame de données Pandas
Problème :
Vous avez un Pandas dataframe avec des données de commandes où chaque commande contient plusieurs packages stockés sous forme de chaînes séparées par des virgules dans les colonnes « package » et « package_code ». Votre objectif est de diviser les données des packages et de créer une nouvelle ligne pour chaque package avec les détails de la commande correspondants.
Solution :
Pour versions Pandas >= 0,25 :
<code class="python">df.set_index(['order_id', 'order_date']) \ .apply(lambda x: x.str.split(',').explode()) \ .reset_index()</code>
Pour les versions Pandas <= 0,24 :
<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()
Explication :
1. Définir l'index : Définissez les colonnes qui doivent rester intactes ("order_id" et "order_date") comme index du dataframe.
2. Diviser et empiler :
3. Dépiler et réinitialiser l'index :
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!