python 带正则表达式和词分组约束的Pandas数列拆分

vh0rcniy  于 2023-02-07  发布在  Python
关注(0)|答案(1)|浏览(100)

假设我有df如下:

MyCol
Red Motor
Blue Taxi
Green Taxi-1
Light blue small Taxi-1 
Light blue big Taxi-2

我想把颜色和车辆分成两列。我用这个命令来分割最后一个单词(可以是任何字符)。
最后一个单词(可以是任何字符,如taxi或taxi-1)指的是车辆。有时,有一个'大'或'小'与汽车名称相关联。前几个单词(可以是一个或多个单词)指的是颜色。
这是我试过的。它只在最后一个单词是没有特殊字符的单词时有效。我怎么能在最后一个单词中也包括特殊字符的情况呢?

df['MyCol'].str.extract('^(.*?)\s((?:small|big)?\s?\w+).*$')
zzwlnbp8

zzwlnbp81#

df['MyCol'].str.extract('^(.*?)\s((?:small|big|)\s?\S+)$')

导致:
| | 无|1个|
| - ------|- ------|- ------|
| 无|红色|马达|
| 1个|蓝色|出租车|
| 第二章|绿色|出租车-1|
| 三个|浅蓝色|小型的士-1|
| 四个|浅蓝色|大出租车|

相关问题