Respostas:
Dos documentos :
str.split([sep[, maxsplit]])
Retorne uma lista das palavras na sequência, usando sep como a sequência delimitadora. Se maxsplit for fornecido, no máximo as divisões maxsplit serão feitas (portanto, a lista terá no 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 mim, a melhor abordagem é a seguinte:
s.split('mango', 1)[-1]
... porque se isso acontecer, a ocorrência não está na string, você receberá " IndexError: list index out of range"
.
Portanto -1
, não haverá nenhum dano, pois o número de ocorrências já está definido como um.
Você também pode 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'
A vantagem de usar str.partition
é que sempre retornará uma tupla no formato:
(<pre>, <separator>, <post>)
Portanto, isso facilita a descompactação do resultado, pois sempre haverá três elementos na tupla resultante.
df.columnname[1].split('.', 1)
Isso dividirá os dados com a primeira ocorrência de '.' no valor da coluna de sequência de caracteres ou quadro de dados.
maxsplit
contagem, o último elemento da lista conterá o restante da sequência (incluindo quaisquersep
caracteres / sequências).