pandas 如果另一列具有特定子字符串,则更新列值

anauzrmj  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(173)

我在一件看似简单的事情上遇到了很多麻烦:
我有一个列有一些饮料名称,但它们被“12oz”和“Boxes”污染了。我只想得到饮料的名称。不幸的是,它们没有以相同的特定形式键入,所以我不能只[0:5]它们。我知道列上所有的饮料名称,如果这有帮助的话
例如:列名:威士忌百龄坛12年12X1000毫升重新登台
根据上一列创建的列:"百龄坛"
先谢谢你,

EDIT其他示例:
芝华士君爵12款ANOS 12X1L应为芝华士
伏特加绝对12X1000ML应为绝对

0lvr5msh

0lvr5msh1#

只需使用replace语句,将regex设置为true,然后替换为空字符串,如下所示:

df.replace('12oz', '', regex=True)

这是假设您知道将必须替换的文本。

vsdwdz23

vsdwdz232#

如果您有所有饮料的列表,则可以使用pandas.Series.extract

import re
​
list_of_bvr= ["ballantines", "chivas", "absolut"]

df["Col1"]= df["Col1"].str.extract(f"({'|'.join(list_of_bvr)})", flags=re.I, expand=False)
#输出:
print(df)

          Col1
0  BALLANTINES
1       CHIVAS
2      ABSOLUT

相关问题