我在一件看似简单的事情上遇到了很多麻烦:我有一个列有一些饮料名称,但它们被“12oz”和“Boxes”污染了。我只想得到饮料的名称。不幸的是,它们没有以相同的特定形式键入,所以我不能只[0:5]它们。我知道列上所有的饮料名称,如果这有帮助的话例如:列名:威士忌百龄坛12年12X1000毫升重新登台根据上一列创建的列:"百龄坛"先谢谢你,
EDIT其他示例:芝华士君爵12款ANOS 12X1L应为芝华士伏特加绝对12X1000ML应为绝对
0lvr5msh1#
只需使用replace语句,将regex设置为true,然后替换为空字符串,如下所示:
df.replace('12oz', '', regex=True)
这是假设您知道将必须替换的文本。
vsdwdz232#
如果您有所有饮料的列表,则可以使用pandas.Series.extract:
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
2条答案
按热度按时间0lvr5msh1#
只需使用replace语句,将regex设置为true,然后替换为空字符串,如下所示:
这是假设您知道将必须替换的文本。
vsdwdz232#
如果您有所有饮料的列表,则可以使用
pandas.Series.extract
:#输出: