您应该将可选匹配项移动到一个捕获组中:
import pandas as pd
data = """\
2930 Beverly Glen Circle Los Angeles
435 S. La Cienega Blvd. Los Angeles
12224 Ventura Blvd. Studio City
9570 Wilshire Blvd. Beverly Hills
26025 Pacific Coast Hwy. Malibu""".split('\n')
df = pd.DataFrame(data)
print(df)
cities = ['Los Angeles', 'Studio City', 'Beverly Hills','Malibu']
c = '|'.join(cities)
pat = fr'(.*?)\s({c})' # fixed pattern with f and r
df = df[0].str.extract(pat,expand=True)
print(df)
输出:
0 1
0 2930 Beverly Glen Circle Los Angeles
1 435 S. La Cienega Blvd. Los Angeles
2 12224 Ventura Blvd. Studio City
3 9570 Wilshire Blvd. Beverly Hills
4 26025 Pacific Coast Hwy. Malibu
分享
编辑
跟随
于 2020 年 6 月 4 日 1
婷婷同学_
相关分类