【发布时间】:2020-05-01 04:59:14
【问题描述】:
在“a”列中,我的值是用逗号分隔的数字(范围从 1 到 35)。例如'1,6,7,3,5,15,6,25,30' 和 '5,6,7,33' '1,6,29,15'
在新列“b”中,只要 A 列中的值为 5 或其变体 ,5(逗号 5)或 5,(逗号 5),我希望该值说“是”。但是我不希望包含 15 或 25 之类的值。有没有办法将 5 的所有组合都用逗号而不是其他任何东西包含在内?
df.loc[df['a'].str.contains(',5'), 'b'] = 'yes'
df.loc[df['a'].str.contains('5,'), 'b'] = 'yes'
【问题讨论】:
-
^5$|^5,|,5,|,5$似乎涵盖了所有基础。 regex101.com/r/NsqaP6/1 -
如果值同时包含
5和15怎么办?喜欢5,2,15,5 -
@jofrev 目标是布尔检查是否存在,而不是提取所有出现。
-
@jofrev 不用担心。与本网站上发布的任何正则表达式问题一样,发布者很少意识到他们选择的单词如何影响所提供的解决方案。大多数问题都有很多不相容的浮夸,这使得问题在第一次尝试时无法回答。无论如何,您的正则表达式也适用于手头的目标。
-
\b5\b怎么样?
标签: python regex string pandas replace