Tengo el siguiente marco de datos de pandas:
the_df = pd.DataFrame({'id':[1,2],'name':['Joe','๐ฎ๐ถ๐๐ถ๐ฝ']}) the_df id name 0 1 Joe 1 2 ๐ฎ๐ถ๐๐ถ๐ฝComo puede ver, podemos leer el segundo nombre como "Sarah", pero estรก escrito con caracteres especiales.
Quiero crear una nueva columna con estos caracteres convertidos a caracteres latinos. He probado este enfoque:
the_df['latin_name'] = the_df['name'].str.extract(r'(^[a-zA-Z\s]*)') the_df id name latin_name 0 1 Joe Joe 1 2 ๐ฎ๐ถ๐๐ถ๐ฝPero no reconoce las letras. Por favor, cualquier ayuda en esto serรก muy apreciada.
Prueba .str.normalize
the_df['name'].str.normalize('NFKC').str.extract(r'(^[a-zA-Z\s]*)')Producciรณn:
0 0 Joe 1 SarahPuedes usar unicodedata.normalize :
>>> import unicodedata >>> df['name'].apply(lambda x: unicodedata.normalize('NFKD', x)) 0 Joe 1 Sarah Name: name, dtype: object