我已经研究过转义字符,但这对我没有帮助。
我有一个熊猫数据框,其中的列称为Page。这是网页名称(而不是网址)的列表。
所以目前它们以3种格式编写:
1. home ? home ? pagename1
2. home | home | pagename2
3. home home pagename3
我希望它们的格式都与数字3相同。
我试图从此列的字符串对象中删除字符,但保留其余代码。
我用过这个:
df.loc[df['Page'].str.replace(('\?|\|'), ''), Regex=True, Inplace=True]
但是我得到输出:
File "<ipython-input-80-2c616b171200>", line 2
df['page']=df.loc[df['Page'].str.replace(('\?|\\'), ''), Regex=True, Inplace=True]
SyntaxError: invalid syntax
如果使用此,则输出相同:
df['page']=df.loc[df['Page'].str.replace(('\?|\|'), ''), Regex=True, Inplace=True]
我尝试使用其他选项,例如:
x=pd.Series['Page']
x.str.replace('\?|\|','',regex = True, inplace=True)
但这给了我
TypeError Traceback (most recent call last) <ipython-input-70-6563d5fa5d40> in <module> 1 #clean up page names ----> 2 x=pd.Series['Page'] 3 x.str.replace('\?|\|','',regex = True, inplace=True) TypeError: 'type' object is not subscriptable
任何人都可以帮忙吗?
谢谢
Mizz
答案 0 :(得分:0)
数据
df=pd.DataFrame({'text':['home ? home ? pagename1','home | home | pagename2','home home pagename3']})
text
0 home ? home ? pagename1
1 home | home | pagename2
2 home home pagename3
解决方案
使用df.str.replace(regex, replacement)
link
df.text=df.text.str.replace('[\s\?\s]|[\s\|\s]',' ')
text
0 home home pagename1
1 home home pagename2
2 home home pagename3
答案 1 :(得分:0)
因此您会收到语法错误,因为regex=True
(是的,所有小写字母)部分都应该是括号中str.replace()参数的一部分。下面的代码
#Modifying page
df['page'] = df['page'].str.replace(('\?|\|'), '',regex=True)
print(df)
获得此结果
0 home home pagename1
1 home home pagename2
2 home home pagename3