我正在查看其中有“城市”列和值的格式设置为Entity [“城市”,{“合肥”,“安徽”,“中国”}的数据集]]。我想清理此列,以便仅保留城市名称。在上面的示例中,我希望除去合肥以外的所有内容。我试图将rstrip和lstrip与正则表达式一起使用。即使基于在线regex调试器网站,我的regex似乎是正确的,但是代码无法正常工作。这是我正在使用的代码:
df['City'] = df['City'].map(lambda x: x.lstrip(r'(Entity["City", {")').rstrip(r'(",\s"\w+"}])'))
我希望结果只是合肥。但是我得到的结果是:
Hefei", "Anhui", "China
lstrip似乎可以正常工作,但是rstrip只会删除“}],而不能删除我需要删除的其余字符。
我希望有人可以告诉我我在哪里犯错,或者告诉我一种更好的方法来完成此任务。
IIUC,您可以这样做:
df['city'] = df['city'].str.extract('{"(.+?)"')
print(df)
输出
city
0 Hefei