Maison >développement back-end >Tutoriel Python >Comment diviser efficacement une colonne de chaîne dans un DataFrame Pandas en deux nouvelles colonnes ?

Comment diviser efficacement une colonne de chaîne dans un DataFrame Pandas en deux nouvelles colonnes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 12:55:14908parcourir

How to Efficiently Split a String Column in a Pandas DataFrame into Two New Columns?

Comment diviser une colonne de chaîne de trame de données en deux colonnes ?

Version TL;DR :

Pour le cas simple d'avoir une colonne de texte avec un délimiteur et voulant créer deux colonnes, la solution la plus simple est :

df[['A', 'B']] = df['AB'].str.split(' ', n=1, expand=True)

En détail :

L'approche d'Andy Hayden démontre efficacement la puissance de la méthode str.extract() . Cependant, pour un simple fractionnement sur un séparateur connu, la méthode .str.split() est suffisante. Il opère sur une colonne (Série) de chaînes et renvoie une colonne (Série) de listes.

L'attribut .str d'une colonne nous permet de traiter chaque élément d'une colonne comme une chaîne et d'appliquer des méthodes efficacement. Il dispose d'une interface d'indexation pour obtenir chaque élément d'une chaîne par son index, nous permettant de découper et de découper les listes renvoyées par .str.split().

Le déballage de tuple Python peut être utilisé pour créer deux colonnes distinctes à partir de la liste en utilisant :

df['A'], df['B'] = df['AB'].str.split('-', n=1).str

Alternativement, on peut utiliser le paramètre expand=True dans .str.split() pour générer directement deux colonnes :

df[['A', 'B']] = df['AB'].str.split('-', n=1, expand=True)

La version expand=True est avantageuse lorsqu'il s'agit de fractionnements de différentes longueurs, car elle gère de tels cas en insérant des valeurs Aucune dans les colonnes avec des « fractionnements » manquants.

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!

Déclaration:
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