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

左连接,其中多个列上的right为null

巴博耘
2023-03-14

我有两个熊猫dfx和y,它们都有相同的3列abc(不可为null)。我需要创建一个新的df z,通过“从x减去与y的行完全相同的行”获得,即a

x left join y on x.A=y.A and x.B=y.B and x.C=y.C
where y.A is null

我该怎么做呢?陷入了索引,协调,合并,加入,...

例子:

dataframe x
A    B    C
q1   q2   q3
q4   q2   q3
q7   q2   q9

dataframe y
A    B    C
q4   q2   q3

dataframe z
A    B    C
q1   q2   q3
q7   q2   q9

共有1个答案

利俊迈
2023-03-14

我认为需要合并与指示器和过滤器只有行从DataFrame

df = x.merge(y, indicator='i', how='outer').query('i == "left_only"').drop('i', 1)
print (df)
    A   B    C
0  q1  q2   q3
2  q7  q2  q93
 类似资料:
  • 问题内容: 我是使用DataFrame的新手,我想知道如何在一系列表的多个列上执行等效于左外部联接的SQL 例: 本质上,我想做类似以下SQL代码的操作(注意df3在Year上没有加入): 结果应如下所示: 我曾尝试使用合并和联接,但无法弄清楚如何在多个表上以及涉及多个联接时执行此操作。有人可以帮我吗? 谢谢 问题答案: 合并他们在两个步骤,和第一,然后那到结果。 我从df3删除了year,因为您

  • 在这个示例中,我有两个表,包含我的客户和一家办公用品商店的产品的数据。如下所示: 上面的表主要功能是为第三个表,即订单表,提供所需的数据 使用订单表,我可以从客户和产品表中获得我需要的报告的快速摘要。当我想查看每个客户每件商品的购买数量时,问题就开始了。 比如这些表格。 使用上面的表格,我需要创建一个报告,显示每个项目的每个客户的购买数量。 像这样。 我已经使用通过来显示项目,但是我现在的代码太长

  • 本文向大家介绍MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程,包括了MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程的使用技巧和注意事项,需要的朋友参考一下 LEFT JOIN 语法用法与实例 MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配

  • 我有5张桌子要放在一起。表格包括:访客、报价、合同1、合同2和合同3。 查询: 这里的问题是,contracts1、contracts2和contracts3并没有公共列以便连接在一起。因此,我得到的不是合同1的20行,合同2的30行,合同3的50行,而是所有这些的组合。因为它们是根据访问者和提供的表加入的。查询结束时使用简单的GROUP BY通常可以解决问题,但如果我在最后对其中一个表(或所有表

  • 问题内容: 我观察到有两种方法可以在多个表上实现目标。结果集中的一列将被更新,并且可能需要速度。结果集可以通过以下方式获得: 情况1: 或者 情况2: 两者给出的结果相同,只是连接条件有所不同。哪个运行/执行速度更快? eval_id为,report_type和course_name为。 对于所使用的开发人员,情况1具有以下统计信息:[SELECT-3077行,0.048秒]提取了结果集…执行了1

  • 我有3个CSV文件。每个数据框都有第一列作为人的(字符串)名称,而每个数据框中的所有其他列都是该人的属性。 如何将所有三个CSV文档“连接”在一起,创建一个单个CSV,每行都具有该人字符串名称的每个唯一值的所有属性? Pandas中的函数指定我需要一个多索引,但是我对分层索引方案与基于单个索引进行连接有什么关系感到困惑。