Pandas 拉取任何列包含特定字符串的行

Pandas pull rows where any column contains certain strings

提问人:Stanleyrr 提问时间:2/12/2023 更新时间:2/12/2023 访问量:213

问:

我正在尝试返回我的任何列包含单词列表中任何单词的行。比方说.我尝试了以下代码。word_list = ['Synthetic', 'Advanced or Advantage/Excellence']df[df.apply(' '.join, 1).str.contains('|'.join(word_list))]

问题是我的一些列包含空值,所以在运行该代码后,我得到了错误(也许 Pandas 将空值视为“int”类型?TypeError: sequence item 0: expected str instance, int found

无论如何,我都可以以 Pandas 可以忽略 null 值或将 null 值视为字符串的方式构建我的代码,以便我的函数可以工作?

python pandas 字符串 数据帧 null

评论

0赞 Pedro Rocha 2/12/2023
您能举例说明您的数据吗?
0赞 Galo do Leste 2/12/2023
首先筛选出具有 null 值的行df.dropna(inplace=True)

答:

4赞 Pedro Rocha 2/12/2023 #1

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

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

我已经在列中使用 int/float/NaNs 尝试过这个,对我来说效果很好。