Comment diviser une colonne de chaîne dans Pandas en plusieurs colonnes
Vous pouvez utiliser la syntaxe de base suivante pour diviser une colonne de chaîne dans un DataFrame pandas en plusieurs colonnes :
#split column A into two columns: column A and column B df[['A', 'B']] = df['A'].str.split(',', 1, expand=True)
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : diviser la colonne par virgule
Le code suivant montre comment diviser une colonne dans un DataFrame pandas, en fonction d’une virgule, en deux colonnes distinctes :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs, West', 'Spurs, West', 'Nets, East'], 'points': [112, 104, 127]}) #view DataFrame df team points 0 Mavs, West 112 1 Spurs, West 104 2 Nets, East 127 #split team column into two columns df[['team', 'conference']] = df['team'].str.split(',', 1, expand=True) #view updated DataFrame df team points conference 0 Mavs 112 West 1 Spurs 104 West 2 Nets 127 East
Notez que vous pouvez également réorganiser les colonnes après avoir effectué le fractionnement si vous le souhaitez :
#reorder columns
df = df[['team', 'conference', 'points']]
#view DataFrame
df
team conference points
0 Mavs West 112
1 Spurs West 104
2 Nets East 127
Exemple 2 : diviser la colonne par d’autres délimiteurs
Nous pouvons utiliser la même syntaxe pour diviser une colonne par d’autres délimiteurs.
Par exemple, on peut diviser une colonne par un espace :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs West', 'Spurs West', 'Nets East'], 'points': [112, 104, 127]}) #split team column into two columns df[['team', 'conference']] = df['team'].str.split(' ', 1, expand=True) #view updated DataFrame df team conference points 0 Mavs West 112 1 Spurs West 104 2 Nets East 127
On peut aussi diviser une colonne par une barre oblique :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs/West', 'Spurs/West', 'Nets/East'], 'points': [112, 104, 127]}) #split team column into two columns df[['team', 'conference']] = df['team'].str.split('/', 1, expand=True) #view updated DataFrame df team conference points 0 Mavs West 112 1 Spurs West 104 2 Nets East 127
En utilisant cette syntaxe, nous pouvons diviser une colonne par n’importe quel délimiteur que nous souhaitons.
Ressources additionnelles
Comment ajouter des lignes à un DataFrame Pandas
Comment ajouter un tableau Numpy à un DataFrame Pandas
Comment compter le nombre de lignes dans Pandas DataFrame