pandas 我如何用部分字符串对字符串进行分类并生成布尔列

wfveoks0  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(122)

假设第一个 Dataframe 包含以下字符串

a
abcd
dabcd
qwerty
oppoupou

然后,我有第二个 Dataframe ,其中包含以下子字符串

column
abc
qw
qaz

我一直在寻找一个代码,可以分类的第一个 Dataframe ,并检查每一行的所有元素在第二个 Dataframe 的一个真或假的解决方案。例如,对于第一个元素,abcd它被第二个 Dataframe 检查,并且它包含abc,因此abcd为真。那么第二个元素也为真,因为它包含abc。而第三个元素之所以为真,是因为它包含qw等。
然后,将有此列,其中第1个 Dataframe 将返回:true, true, true, false
我找到了这段代码,但这只涵盖了单个元素,而不是整个 Dataframe

df["b"] = df["a"].str.contains("abc")

对于布尔值编码2个不同的字符串 Dataframe 有什么建议吗?

sg3maiej

sg3maiej1#

对于正则表达式OR,您需要通过|连接第二个DataFrame中col列的值:

df["b"] = df["a"].str.contains('|'.join(df2['column']))
print (df)
          a      b
0      abcd   True
1     dabcd   True
2    qwerty   True
3  oppoupou  False

相关问题