Risposte:
Dai documenti :
str.split([sep[, maxsplit]])
Restituisce un elenco delle parole nella stringa, usando sep come stringa del delimitatore. Se maxsplit è dato, nella maggior parte maxsplit divisioni sono fatte (così, la lista avrà al massimo
maxsplit+1
gli elementi).
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'
Per me l'approccio migliore è che:
s.split('mango', 1)[-1]
... perché se accade che l'occorrenza non è nella stringa otterrai "IndexError: list index out of range"
.
Pertanto -1
non si ottiene alcun danno perché il numero di occorrenze è già impostato su uno.
Puoi anche usare 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'
Il vantaggio dell'uso str.partition
è che restituirà sempre una tupla nella forma:
(<pre>, <separator>, <post>)
Quindi, questo rende l'estrazione, l'uscita molto flessibile come c'è sempre sarà 3 elementi della tupla risultante.
df.columnname[1].split('.', 1)
Questo dividerà i dati con la prima occorrenza di '.' nel valore della colonna stringa o frame di dati.
maxsplit
conteggio, l'ultimo elemento nell'elenco conterrà il resto della stringa (inclusivo di eventualisep
caratteri / stringhe).