在匹配的单词之前提取单词

2024-09-26 22:43:47 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在尝试在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)))

我不太擅长使用正则表达式,我的代码怎么了

非常感谢你的帮助


Tags: importrestreetcityappledfdatafood
1条回答
网友
1楼 · 发布于 2024-09-26 22:43:47

使用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

使用n=2的rsplit的另一种方法

df['CITY'] = df['ADDR'].str.rsplit(' ', n=2).str[1]

相关问题 更多 >

    热门问题