Pandas str.rsplit не работает с логическим или в шаблоне - PullRequest
1 голос
/ 03 марта 2020

Я попытался rsplit строку в Pandas, и получил странный результат: split работает хорошо, но rsplit нет. Кажется, причина в наличии ИЛИ "|", но я действительно изо всех сил пытаюсь понять, почему это так. Пример:

stri = """Mywebsite.com/optiona/optionb/type/102/103/107?data=1.2. 1581202800. 1581289200.30"""
stri_1 = """optiona/optionb/type/102/103/107?data=1.2. 1581202800. 1581289200.30"""

df = pd.DataFrame({'input': [stri, stri_1]})
df_split1 = df['input'].str.split(r'\?data=', expand=True)
print(df_split1.loc[:, 0].str.rsplit(r'/|y', expand=True))
# |    | 0                                              |
# |---:|:-----------------------------------------------|
# |  0 | Mywebsite.com/optiona/optionb/type/102/103/107 |
# |  1 | optiona/optionb/type/102/103/107               |

print(df_split1.loc[:, 0].str.split(r'/|y', expand=True))
# |    | 0       | 1           | 2       | 3       | 4   | 5   |   6 |   7 |   8 |
# |---:|:--------|:------------|:--------|:--------|:----|:----|----:|----:|----:|
# |  0 | M       | website.com | optiona | optionb | t   | pe  | 102 | 103 | 107 |
# |  1 | optiona | optionb     | t       | pe      | 102 | 103 | 107 |     |     |

Я полагаю, это связано с некоторой присущей левой асимметрией регулярного выражения, но я не нашел хорошего объяснения. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...