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!