【发布时间】:2020-01-12 23:40:51
【问题描述】:
我在匹配数据框的列表和列时遇到问题,并从匹配中提取列中的特定匹配值。
数据集:
address
0 58 Chatham Street, Chatham, New Jersey, 07928
1 3420 W. MacArthur Blvd. Ste. C, Santa Ana, California
2 2016 Chalk Rd, Wake Forest, North Carolina, 27587
我有一个包含州名的列表
state = ['New York','New Jersey','California',...]
渴望结果
address State
0 58 Chatham Street, Chatham, New Jersey, 07928 New Jersey
1 3420 W. MacArthur Blvd. Ste. C, Santa Ana, California California
2 2016 Chalk Rd, Wake Forest, North Carolina, 27587 North Carolina
我尝试过的代码
for i in state:
ship_add['state'] = ship_add['address'].str.strip(i)
【问题讨论】:
-
您可以根据逗号将值拆分为新列,因为获取状态的模式在每一行中并不固定 df['address'].str.split(', ', expand=True)
-
如果你尝试提取那些结尾不是全数字的值怎么办?
.str.extract(r'(\w[^,]*)(?:,\s*\d+)?$', expand=False)?
标签: python regex string pandas