我正在尝试将DataFrame分为两列,并在结果中保留左侧部分,但是熊猫无法识别该字符串,因此我将其留空。
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
答案 0 :(得分:2)
文档对此方法具有一定的欺骗性。发生的情况是,对于长度超过1个字符的模式,pandas将分隔符解释为regular expression。您可以看到实现here。
通过使用反斜杠转义字符"||"
(在正则表达式中具有特殊含义),可以将"|"
用作文字,非正则表达式分隔符:
series.str.split("\\|\\|")
请注意,python为字符串文字提供了一个“原始” syntax,可用于编写正则表达式,从而无需对反斜杠本身进行转义:
series.str.split(r"\|\|")
您可以查阅re
模块的文档,以获取使用多字符分隔符时需要转义的特殊字符的列表。或者,只需使用函数re.escape
:
import re
series.str.split(re.escape("||"))