对于为什么我无法通过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=', '')
但是,这似乎根本无法修改我的数据。
感谢您的帮助。
答案 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)