首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用pandas dataframe迭代列表时字符串查找失败

使用pandas dataframe迭代列表时字符串查找失败
EN

Stack Overflow用户
提问于 2018-12-21 14:54:49
回答 1查看 59关注 0票数 1

我有一个字符串列表,我试图用它来搜索pandas DF列,并删除包含该列表元素的所有行。

以下是搜索特定列,然后删除包含引号中文本子字符串的行的代码。在这种情况下,Owner_Name列中包含'dave‘的所有行都将被删除。这本身就工作得很好,完全符合预期。

代码语言:javascript
运行
复制
df = df[~df.Owner_Name.str.contains('dave')

当我试图对大约54个元素的列表进行自动化时,它被挂起了,只删除了一些,但不是全部。知道为什么吗?以下是我的简单循环代码(模拟以显示我正在做什么,而不是我的实际代码):

代码语言:javascript
运行
复制
badWords= ['random stuff','code words','secret squirrel','blue','black','dave']
for word in badWords:
    df = df[~df.Owner_Name.str.contains(word)]
    print('Total Rows Left',df.shape[0], word)

我没有收到任何错误,但它肯定不会像我希望的那样工作。例如,在循环之后,Owner_Name列中仍然有'dave‘元素,即使它应该循环遍历列表。我甚至放入了breadcrumbs来调用被传递的元素,所以它在做循环,但是好像str.contains('')不能正常工作来删除行。我确保所有内容都与我的列表对象在df中的大小写匹配,所以这应该不是问题。我真的被难住了,在堆栈上找不到关于这个特定问题的任何东西。

EN

回答 1

Stack Overflow用户

发布于 2018-12-21 15:05:32

代码语言:javascript
运行
复制
badWords= ['random stuff','code words','secret squirrel','blue','black','dave']
for word in badWords:
    df = df[~df.Owner_Name.str.contains(word,case=False)]
    print('Total Rows Left',df.shape[0], word)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53880422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档