Python如何将colors列转换为仅保留首个颜色的new_colors列?
Python实现从colors列提取第一个颜色的方案
你提到的split方法就是最简单直接的实现方式,完全可以满足需求,不需要额外找其他复杂方案。以下是基于pandas的具体实现代码:
方法1:str.split方法(最直观易读)
直接对列做分号分割后取第一个元素即可,自动兼容没有分号的单颜色场景:
import pandas as pd # 构造示例DataFrame(你实际使用时替换成自己的df即可) df = pd.DataFrame({ 'colors': ['red', 'blue;yellow', 'red;green'] }) # 生成new_colors列 df['new_colors'] = df['colors'].str.split(';').str[0]
运行后得到的new_colors列和你给出的示例效果完全一致。
方法2:正则提取(适合更复杂的匹配场景)
如果你后续有更复杂的匹配规则,可以用str.extract实现,当前场景下写法如下:
df['new_colors'] = df['colors'].str.extract(r'^([^;]+)')
两种方法性能差异极小,日常使用优先选第一种即可。
内容的提问来源于stack exchange,提问作者Tristan
相关产品推荐
相关产品推荐

