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