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 pd
import numpy as np
data = {'Full_Name':['April Reiter','Emory Miller','David Ballin','Alice Trotter','Virginia Rios']}
df = pd.DataFrame(data=data)
print(df)
donne
Full_Name
0 April Reiter
1 Emory Miller
2 David Ballin
3 Alice Trotter
4 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 1
0 April Reiter
1 Emory Miller
2 David Ballin
3 Alice Trotter
4 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 1
0 A R
1 E M
2 D B
3 A T
4 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.R
1 E.M
2 D.B
3 A.T
4 V.R
dtype: 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 Initials
0 April Reiter A.R
1 Emory Miller E.M
2 David Ballin D.B
3 Alice Trotter A.T
4 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 |