一、问题复现
我有一个csv文件,读取为dataframe,有一列是一串字符串,且都包含||。如下所示:
![](https://img-blog.csdnimg.cn/direct/c741cb8e79b74f2da924bf7257509abf.png)
我希望使用split函数以||作为标志来分割,取||前面的字符串。代码如下:
import pandas as pd
df = pd.DataFrame({'columns1': ['abc||def', 'efhf||fjei', 'fef||fjhe']})
print(df['columns1'].str.split("||", expand=True)[0])
结果并不是我们想要的:
![](https://img-blog.csdnimg.cn/direct/e6004a5ed1ab4ce498bc987d4f45d03a.png)
二、解决办法
只需要将split里的||换成\|\|,即可
import pandas as pd
df = pd.DataFrame({'columns1': ['abc||def', 'efhf||fjei', 'fef||fjhe']})
print(df['columns1'].str.split("\|\|", expand=True))
运行结果如下,可以顺利取到||左边的字符串:
![](https://img-blog.csdnimg.cn/direct/d4ffc56c28124653aa2c2797845a61a0.png)
三、原因
应该是转义字符的问题,但是具体不清楚,哈哈哈哈,希望有明白的可以解释一下。