当前位置: 首页 > 知识库问答 >
问题:

如何从熊猫数据帧中删除在特定列中包含特定字符串的行?[重复]

蒋阳华
2023-03-14

我在python中有一个非常大的数据帧,我想把所有具有特定字符串的行放到特定列中。

例如,我想删除所有在数据帧的C列中有字符串“XYZ”作为子字符串的行。

这可以通过使用有效的方式实现。drop()方法

共有3个答案

狄钧
2023-03-14

这将只工作,如果你想比较确切的字符串。如果您想检查列字符串是否包含列表中的任何字符串,它将不起作用。

与列表进行比较的正确方法是:

searchfor = ['john', 'doe']
df = df[~df.col.str.contains('|'.join(searchfor))]
宇文兴言
2023-03-14

如果字符串约束不仅仅是一个字符串,则可以使用以下命令删除相应的行:

df = df[~df['your column'].isin(['list of strings'])]

上述操作将删除包含列表元素的所有行

龙珂
2023-03-14

pandas具有矢量化字符串操作,因此您可以只筛选出包含不需要的字符串的行:

In [91]: df = pd.DataFrame(dict(A=[5,3,5,6], C=["foo","bar","fooXYZbar", "bat"]))

In [92]: df
Out[92]:
   A          C
0  5        foo
1  3        bar
2  5  fooXYZbar
3  6        bat

In [93]: df[~df.C.str.contains("XYZ")]
Out[93]:
   A    C
0  5  foo
1  3  bar
3  6  bat
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 在熊猫中的DataFrame上搜索“不包含” (6个答案) 去年关闭。 我在python中有一个非常大的数据框,我想在特定列中删除所有具有特定字符串的行。 例如,我想在数据框的列C中删除所有具有字符串“ XYZ”作为子字符串的行。 可以使用.drop()方法以一种有效的方式来实现吗? 问题答案: pandas具有向量化的字符串操作,因此您可以过滤掉包含不

  • 我有以下格式的CSV数据: 列属于数据类型。我想做的是删除所有具有非数字位置标签的行。因此,根据上表,我的期望输出为: 现在,我可以用以下方式硬编码解决方案: 这是受以下帖子的启发: 如何从特定列中包含特定字符串的数据框中删除行? 然而,我所寻找的是一个通用的解决方案,它将适用于上述任何类型的表。

  • 我有一个熊猫数据框,看起来像这样(但实际上要大得多): 我只想删除包含-500(2)和整列(f和g)的整行。我的数据框是自动生成的,我还不知道哪些列和行包含-500。 有人知道怎么做吗? 谢谢

  • 如何消除罗恩说了一句我不想说的话?我有这个数据框: 我正试图删除带有“esponja”字样的rown 我想要这样的数据帧: 我是新手,我不知道如何解决这个问题

  • 问题内容: 我使用以下内容创建了一个数据框: 我想获得含有从每列的数据帧具有在他们的名字。这只是我的问题的一个简单版本,因此我的实际数据框将具有更多列。 问题答案: 替代方法:

  • 问题内容: 例如,我正在从文本文件中提取文本String,我需要这些词来形成数组。但是,当我执行所有这些操作时,有些单词以逗号(,)或句号(。)结尾,甚至附有括号(这完全是正常现象)。 我要做的是摆脱那些角色。我一直在尝试使用Java中的预定义String方法来做到这一点,但我还是无法解决。 问题答案: 用: replaceAll采用正则表达式。这个: …寻找每个逗号和/或句号。