Respuestas:
De los documentos :
str.split([sep[, maxsplit]])
Devuelve una lista de las palabras en la cadena, usando sep como la cadena delimitadora. Si se da maxsplit , como máximo se realizan divisiones maxsplit (por lo tanto, la lista tendrá como máximo
maxsplit+1
elementos).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Para mí, el mejor enfoque es que:
s.split('mango', 1)[-1]
... porque si sucede que la ocurrencia no está en la cadena que obtendrás " IndexError: list index out of range"
.
Por -1
lo tanto , no obtendrá ningún daño porque el número de ocurrencias ya está establecido en uno.
También puedes usar str.partition
:
>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
La ventaja de usar str.partition
es que siempre devolverá una tupla en la forma:
(<pre>, <separator>, <post>)
Esto hace que desempaquetar la salida sea realmente flexible ya que siempre habrá 3 elementos en la tupla resultante.
df.columnname[1].split('.', 1)
Esto dividirá los datos con la primera aparición de '.' en la cadena o el valor de la columna del marco de datos.
maxsplit
recuento, el último elemento de la lista contendrá el resto de la cadena (incluidos lossep
caracteres / cadenas).