python - Pandas 无法将 "||"识别为要拆分的字符串

标签 python pandas dataframe split

我试图将一个 DataFrame 分成两列并得到结果的左边部分,但是 pandas 不识别该字符串并给我一个空的输出。

q=['Sar || var','lol ||']
y=pd.DataFrame(q)
split_data = y[0].str.split("||", n = 1, expand = False).str[0]
print(split_data)

out

0    
1    
Name: 0, dtype: object

最佳答案

该方法的文档有些欺骗性。发生的情况是,对于超过 1 个字符的模式,pandas 将分隔符解释为 regular expression。 .可以看到实现 here .

您可以使用 "||" 作为文字的非正则表达式分隔符,方法是使用反斜杠:

series.str.split("\\|\\|")

请注意,python 提供了一个“原始”syntax对于可用于编写正则表达式的字符串文字,无需转义反斜杠本身:

series.str.split(r"\|\|")

您可以查阅 re 模块的文档,了解使用多字符分隔符时需要转义的特殊字符列表。或者,只需使用函数 re.escape:

import re
series.str.split(re.escape("||"))

关于python - Pandas 无法将 "||"识别为要拆分的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60308617/

相关文章:

python - 由于缩进,Python IDLE (Mac OS X) 中的语法错误

python - 匹配时,代码产生不充分的结果 python

Python Pandas to_pickle 无法 pickle 大型数据帧

python - 将随机纬度/经度点合并到 Pandas 普查区旅行调查数据中

python - 使用关联列表对象的函数迭代列表

python - 如何在 Pandas 数据框中查找值

python - 有条件地过滤一个 df 中的行以获取另一个 df 的子集共有的特定列

python 用 "on duplicate key update"执行很多?

python - 在 Python 中分箱后返回范围的下限或上限

python - 自定义 python 包的导入问题