你好,我正在尝试在 Python 中的匹配单词之前提取单词。
例如:
import pandas as pd
import re
data = [' 123 DIR FOOD CITY','124 DIR DRINK CITY','143 STREET CANDY CITY','186 ROAD APPLE CITY']
df = pd.DataFrame(data, columns = ['ADDR'])
我试图提取"食物","饮料","糖果"和"苹果"等词。 我想要的输出是:
ADDR CITY
123 DIR FOOD CITY FOOD
124 DIR DRINK CITY DRINK
143 STREET CANDY CITY CANDY
186 ROAD APPLE CITY APPLE
这就是我尝试过的,但它没有任何结果。
df['CITY'] = df['ADDR'].apply(lambda x: ' '.join(re.findall(r'(w+)s+CITY',x)))
我不太擅长使用正则表达式,我的代码有什么问题?
非常感谢您的帮助!
使用extract
和正则表达式:
df['CITY'] = df['ADDR'].str.extract('.*s(?P<CITY>.*)sCITY')
输出:
ADDR CITY
0 123 DIR FOOD CITY FOOD
1 124 DIR DRINK CITY DRINK
2 143 STREET CANDY CITY CANDY
3 186 ROAD APPLE CITY APPLE
另一种使用 rsplit 与 n=2 的方法,
df['CITY'] = df['ADDR'].str.rsplit(' ', n=2).str[1]