字符串替换不删除子字符串

时间:2020-04-23 16:51:17

标签: python python-3.x pandas

对于为什么我无法通过str.replace删除Pandas数据帧的列中的字符串的一部分,我有些困惑。

这是我的数据:

asciiname   population  location
0   Casablanca  3144909 https://www.google.com/maps/?q=33.58831,-7.61138
1   Rabat   1655753 https://www.google.com/maps/?q=34.01325,-6.83255
2   Fes 964891  https://www.google.com/maps/?q=34.03313,-5.00028
3   Sale    903485  https://www.google.com/maps/?q=34.0531,-6.79846
4   Marrakesh   839296  https://www.google.com/maps/?q=31.63416,-7.99994

我正在尝试删除“ https://www.google.com/maps/?q=”,只保留经纬度较长的坐标。

我正在运行以下代码:

cities['location'] = cities['location'].str.replace('https://www.google.com/maps/?q=', '')

但是,这似乎根本无法修改我的数据。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

只需使用?来转义\字符,它应该可以工作。

基本上,

cities["location"] = cities["location"].str.replace("https://www.google.com/maps/\?q=", "")

答案 1 :(得分:1)

如果我没记错的话,默认情况下,pandas.Series.str.replace的第一个参数被视为正则表达式。只需将regex=True作为参数传递给您的字符串即可用作纯字符串,而不是正则表达式。

赞:

cities['location'] = cities['location'].str.replace('https://www.google.com/maps/?q=', '', regex=False)