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

不删除行。isin('X')[重复]

詹夕
2023-03-14

很抱歉刚刚进入熊猫,这似乎应该是一个非常直截了当的问题。如何使用isin('X')删除列表X中的行?在R中我会写!哪个(在%b中为%a)

共有3个答案

隗俊誉
2023-03-14

您所要做的就是创建数据帧的子集,其中isin方法的计算结果为False:

df = df[df['Column Name'].isin(['Value']) == False]
蓬新
2023-03-14

可以使用numpy.logical_not反转isin返回的布尔数组:

In [63]: s = pd.Series(np.arange(10.0))

In [64]: x = range(4, 8)

In [65]: mask = np.logical_not(s.isin(x))

In [66]: s[mask]
Out[66]: 
0    0
1    1
2    2
3    3
8    8
9    9

如Wes McKinney的评论所示,您也可以使用

s[~s.isin(x)]
马欣荣
2023-03-14

你有很多选择。整理上面的一些答案和这篇文章中被接受的答案,你可以做:
1<代码>df[-df[“列”].isin([“值”])]
2<代码>df[~df[“列”].isin([“值”])]
3df[df[“column”]。isin([“value”])==False]
4df[np.logical_not(df[“column”].isin([“value”])]]

注意:对于的选项4,您需要将numpy导入为np

更新:您也可以使用。查询方法。这允许方法链接:
5。df.query("列不在@值中")
其中是您不想包含的值的列表。

 类似资料:
  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 问题内容: 我有一张看起来像这样的桌子 表格1 ID,名称 如何编写查询以删除所有具有重复名称的行,但保留具有较低ID的行? 问题答案: 如果您使用的是SQL Server 2005或更高版本: 如果使用SQL Server 2000及更低版本

  • 问题内容: 我有一个注释表,其结构如下: 我有很多重复的评论,名字和电子邮件都一样。我需要删除它们,有人可以建议我如何使用一个查询来实现此目标吗? 谢谢 问题答案:

  • 问题内容: 我需要执行分组依据,但只能在满足条件的行上执行,否则返回不满足条件的所有行。例如,在下表中,我只希望对“活动”字段中具有“ 1”的行进行分组,并返回所有没有的行。 表格(ID,标签,有效): 将返回: 问题答案: 这是我能想到的最简单的方法。这是group by中的一个案例。如果满足条件,则按标签分组,否则按主键分组。 如果要按活动分组并标记: 编辑:我误解了您要分组的字段。现在已更正

  • 问题内容: 尝试从Sybase到Microsoft SQL进行OPENQUERY时,我遇到错误: 通过OPENQUERY和OPENROWSET获得的结果集中不允许重复的列名。列名称“ PatientID”是重复的。 我建立的查询基于相似的entryID和PatientID联接了2个表。 例如: 当然,真正的查询不仅包含更多信息。 是否有重命名或删除AdmID和PatID列之一的好方法? 我尝试过: