熊猫无法识别“ ||”作为字符串分割

时间:2020-02-19 20:22:22

标签: python pandas dataframe split

我正在尝试将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

1 个答案:

答案 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("||"))