Supongamos que tengo un DataFrame
con 100k filas y un name
columna. Me gustaría dividir este nombre en nombre y apellido tan eficientemente como sea posible. Mi método actual es,
def splitName(name): return pandas.Series(name.split()[0:2]) df[['first', 'last']] = df.apply(lambda x: splitName(x['name']), axis=1)
Desafortunadamente, DataFrame.apply
es muy, muy lento. ¿Hay algo que pueda hacer para que esta operación de cadena sea tan rápida como una operación numpy
?
¡Gracias!
Probar (requiere pandas> = 0.8.1):
splits = x['name'].split() df['first'] = splits.str[0] df['last'] = splits.str[1]