Pandas str.rsplit不能与模式中的逻辑or一起使用

2024-09-20 03:54:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在熊猫身上拉断一根绳子,但得到了一个奇怪的结果: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 |     |     |

我猜这是由于regexp固有的左不对称,但我没有找到任何好的解释。 提前谢谢你


Tags: comtruedfinputdatatypesplitexpand