Python Pandas: 如何替换包含“?”的字符串
Python Pandas: How to replace string contain "?"
我有一个 Python 2.7 Pandas 数据框,如下所示:
Id Title URL
Id-1 Bruce Almighty https://www.youtube.com/watch?v=5VGyTOGxyVA
Id-2 Superhero Movie https://www.youtube.com/watch?v=3BnXz-7-y-o
Id-3 Taken https://www.youtube.com/watch?v=vjbfiOERDYs
Id-4 Forest Gump https://www.youtube.com/watch?v=eJFkCJySHdY&t=524s
我想用其他字符串替换部分字符串“?v=”,例如 "ppp"来自 "URL" 列。我用普通的替换命令试过:
df['URL'] = df['URL'].str.replace('?v=', 'ppp')
但出现以下错误。
error: nothing to repeat.
当我尝试只替换一个字符时,例如:
df['URL'] = df['URL'].str.replace('?', 'ppp')
它工作正常。为什么当我尝试替换字符串“?v=”时它不起作用?
您需要通过 \
:
逃脱 ?
df['URL'] = df['URL'].str.replace('\?v=', 'ppp')
print (df)
Id Title URL
0 Id-1 Bruce Almighty https://www.youtube.com/watchppp5VGyTOGxyVA
1 Id-2 Superhero Movie https://www.youtube.com/watchppp3BnXz-7-y-o
2 Id-3 Taken https://www.youtube.com/watchpppvjbfiOERDYs
3 Id-4 Forest Gump https://www.youtube.com/watchpppeJFkCJySHdY&t=...
Series.replace
的另一个解决方案:
df['URL'] = df['URL'].replace('\?v=', 'ppp', regex=True)
print (df)
Id Title URL
0 Id-1 Bruce Almighty https://www.youtube.com/watchppp5VGyTOGxyVA
1 Id-2 Superhero Movie https://www.youtube.com/watchppp3BnXz-7-y-o
2 Id-3 Taken https://www.youtube.com/watchpppvjbfiOERDYs
3 Id-4 Forest Gump https://www.youtube.com/watchpppeJFkCJySHdY&t=...
或者您可以指示 Pandas 您正在执行标准(不是 RegEx)替换:
df['URL'] = df['URL'].str.replace('?v=', 'ppp', regex=False)
我有一个 Python 2.7 Pandas 数据框,如下所示:
Id Title URL
Id-1 Bruce Almighty https://www.youtube.com/watch?v=5VGyTOGxyVA
Id-2 Superhero Movie https://www.youtube.com/watch?v=3BnXz-7-y-o
Id-3 Taken https://www.youtube.com/watch?v=vjbfiOERDYs
Id-4 Forest Gump https://www.youtube.com/watch?v=eJFkCJySHdY&t=524s
我想用其他字符串替换部分字符串“?v=”,例如 "ppp"来自 "URL" 列。我用普通的替换命令试过:
df['URL'] = df['URL'].str.replace('?v=', 'ppp')
但出现以下错误。
error: nothing to repeat.
当我尝试只替换一个字符时,例如:
df['URL'] = df['URL'].str.replace('?', 'ppp')
它工作正常。为什么当我尝试替换字符串“?v=”时它不起作用?
您需要通过 \
:
?
df['URL'] = df['URL'].str.replace('\?v=', 'ppp')
print (df)
Id Title URL
0 Id-1 Bruce Almighty https://www.youtube.com/watchppp5VGyTOGxyVA
1 Id-2 Superhero Movie https://www.youtube.com/watchppp3BnXz-7-y-o
2 Id-3 Taken https://www.youtube.com/watchpppvjbfiOERDYs
3 Id-4 Forest Gump https://www.youtube.com/watchpppeJFkCJySHdY&t=...
Series.replace
的另一个解决方案:
df['URL'] = df['URL'].replace('\?v=', 'ppp', regex=True)
print (df)
Id Title URL
0 Id-1 Bruce Almighty https://www.youtube.com/watchppp5VGyTOGxyVA
1 Id-2 Superhero Movie https://www.youtube.com/watchppp3BnXz-7-y-o
2 Id-3 Taken https://www.youtube.com/watchpppvjbfiOERDYs
3 Id-4 Forest Gump https://www.youtube.com/watchpppeJFkCJySHdY&t=...
或者您可以指示 Pandas 您正在执行标准(不是 RegEx)替换:
df['URL'] = df['URL'].str.replace('?v=', 'ppp', regex=False)