【发布时间】:2021-09-09 12:10:29
【问题描述】:
我在 Python Pandas 中有 DataFrame,如下所示:
col1
--------
John Simon prd
agc Ann White
BeN and Ann
bad_list = ["Ben", "Wayne"]
我需要采取类似的方法:创建新列“col2”,如果“col1”中的值具有来自 bad_list 的值,则在“col2”中为该行提供“1”,否则为 0。
请注意,bad_list 和“col1”中的字母大小应被忽略,例如“col1”中的值为“BeN”,而 bad_list 中的值为“Ben”,因此它也应具有值“ 1" in "col2"
因此,根据上述数据框和条件,我需要如下结果:
col1 | col2
----------------|------
John Simon prd |0
arc Ann White |0
BeN and Ann |1
“col2”中的最后一行的值为“1”,因为“Ben”在 bad_list 上,不要介意“col1”中的写为 BeN。 如何在 Python Pandas 中做到这一点?
【问题讨论】:
-
将下面的解决方案稍微更改为:
import re df['col2'] = df['col1'].str.contains('|'.join(bad_list), flags=re.IGNORECASE).astype(int)主要更改是添加flags=re.IGNORECASE以指示Pandas 忽略大小写。