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