如何让 python 识别一个词并将其分隔到一个新列中?

How can I make python recognize a word and separate it into a new column?

我想知道是否有办法让 python 识别每条记录的颜色并将它们分开到一个单独的列中。

即我们有以下数据:

ID  CODE        DESCRIPTION                     PRICE
1   85473254        Mountain jacket blue        30,99
2   54123654        Boots pink                  23.45
3   45236574        Buff sky blue               20.50
4   12547835        All set mountain black      90.99

我想得到以下内容:

ID  CODE            DESCRIPTION             COLOR       PRICE
1   85473254        Mountain jacket         Blue        30,99
2   54123654        Boots                   Pink        23.45
3   45236574        Buff                   Sky blue     20.50
4   12547835        All set mountain        Black       90.99

也许有什么方法可以用颜色数据集训练 python 以便它识别和区分每个注册表的每种颜色?

感谢您的帮助。

您可以维护所有可能颜色的列表,然后形成该列表的正则表达式交替。然后,使用 str.extract 查找每个描述中的颜色。

colors = ['sky blue', 'pink', 'blue', 'black']
regex = r'\b(' + '|'.join(colors) + r')$'
df["COLOR"] = df["DESCRIPTION"].str.extract(regex, flags=re.I)