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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *