Документация несколько обманчива для этого метода. Происходит следующее: для шаблонов длиннее 1 символа pandas интерпретирует разделитель как регулярное выражение . Вы можете увидеть реализацию здесь .
. Вы можете использовать "||"
в качестве литерального разделителя без регулярных выражений, экранируя символ "|"
(что имеет особое значение в регулярных выражениях), используя a backsla sh:
series.str.split("\\|\\|")
Обратите внимание, что python предоставляет «необработанный» синтаксис для строковых литералов, который может быть полезен для написания регулярных выражений, избавляя от необходимости избегать Сами обратные косые черты:
series.str.split(r"\|\|")
Вы можете обратиться к документации для модуля re
для получения списка специальных символов, которые необходимо экранировать при использовании многосимвольных разделителей. В качестве альтернативы, просто используйте функцию re.escape
:
import re
series.str.split(re.escape("||"))