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