Rápidamente aplicando operaciones de cadena en un dataframe de pandas.

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]