Pandas在任何列都包含特定字符串的地方拉行

xfyts7mz  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(116)

我尝试返回的行中,任何一列包含单词列表中的任何单词。假设word_list = ['Synthetic', 'Advanced or Advantage/Excellence']。我尝试了下面的代码df[df.apply(' '.join, 1).str.contains('|'.join(word_list))]
问题是我的一些列包含空值,所以在运行该代码后,我得到了错误TypeError: sequence item 0: expected str instance, int found(也许Pandas将空值视为“int”类型?)
有没有什么方法可以让我构造代码,让Pandas可以忽略空值,或者把空值当作字符串,这样我的函数就可以工作了?

iszxjhcz

iszxjhcz1#

问题是您正在尝试连接intstr,您可以尝试以下操作:

df[df.apply(lambda x: x.astype(str).str.contains('|'.join(word_list), case=False).any(), axis=1)]

我已经在列中使用int/float/NaNs进行了尝试,效果不错。

相关问题