Exemple de comment créer une nouvelle colonne avec des initiales à partir d'une colonne de noms avec pandas:
Créer une dataframe avec pandas
Commençons par créer une dataframe avec pandas comprenant une colonne avec des noms complets :
import pandas as pdimport numpy as npdata = {'Full_Name':['April Reiter','Emory Miller','David Ballin','Alice Trotter','Virginia Rios']}df = pd.DataFrame(data=data)print(df)
donne
Full_Name0 April Reiter1 Emory Miller2 David Ballin3 Alice Trotter4 Virginia Rios
Créer une nouvelle colonne avec des initiales
Voyons maintenant étape par étape comment extraire les initiales de la colonne Full_Name :
Étape 1: séparer les noms et prénoms à l'aide pandas.Series.str.split:
df['Full_Name'].str.split(expand=True)
donne
0 10 April Reiter1 Emory Miller2 David Ballin3 Alice Trotter4 Virginia Rios
Étape 2: extraire la première lettre de chaque colonne :
df['Full_Name'].str.split(expand=True).apply(lambda x : x.str[0])
donne
0 10 A R1 E M2 D B3 A T4 V R
Étape 3: agréger les colonnes 0 et 1 :
df['Full_Name'].str.split(expand=True).apply(lambda x : x.str[0]).agg('.'.join, axis=1)
donne
0 A.R1 E.M2 D.B3 A.T4 V.Rdtype: object
Étape 4: Créons une nouvelle colonne pour stocker les initiales :
df['Initials'] = df['Full_Name'].str.split(expand=True).apply(lambda x : x.str[0]).agg('.'.join, axis=1)
donne
Full_Name Initials0 April Reiter A.R1 Emory Miller E.M2 David Ballin D.B3 Alice Trotter A.T4 Virginia Rios V.R
done !
Références
| Links | Site |
|---|---|
| get first letter of a String (sentence) given in a column and create a new column in python | stackoverflow |
| pandas.Series.str.split | pandas.pydata.org |
| Combine two columns of text in pandas dataframe | stackoverflow |
