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

如何在SQL查询中创建drop_副本?[副本]

柏高丽
2023-03-14

熊猫的常见操作是

In [14]: import io

In [15]: csv='''\
    ...: a,b
    ...: 1,2
    ...: 1,3
    ...: 2,3
    ...: 3,1
    ...: 3,3'''

In [16]: dt = pd.read_csv(io.StringIO(csv))

In [17]: dt
Out[17]:
   a  b
0  1  2
1  1  3
2  2  3
3  3  1
4  3  3

In [18]: dt.drop_duplicates(subset = ['a'])
Out[18]:
   a  b
0  1  2
2  2  3
3  3  1

但是,如何在SQL中执行此操作?是否有标准的功能或方法来执行drop\u重复项(子集)的操作=

熊猫复制功能的工作原理:

In [20]: dt['a'].duplicated()
Out[20]:
0    False
1     True
2    False
3    False
4     True
Name: a, dtype: bool

In [21]: dt.drop_duplicates(subset=['a'])
Out[21]:
   a  b
0  1  2
2  2  3
3  3  1

共有1个答案

段干麒
2023-03-14

我想你想要:

select a, b
from (select t.*, row_number() over (partition by a order by b) as seqnum
      from t
     ) t
where seqnum = 1;

请注意,与数据帧不同,SQL表表示无序集。除非列指定了顺序,否则没有“第一”行。

如果不关心行,还可以使用聚合:

select a, min(b) as b
from t
group by a;
 类似资料:
  • 只读操作: 有没有办法有一个MongoDB副本集,但要使连接到的框上的MongoDB实例成为被查询的MongoDB? 我在AWS负载平衡器后面有三个EC2实例。 在每个EC2实例上运行MongoDB,它是副本集的一部分。 我在nodeJS上有expressendpoint,我连接到副本集,如下所示 我希望在MongoDB副本集的所有三个实例上均匀分布查询负载,而不是默认情况下将所有查询路由到定义了

  • 我想列个这样的单子。请帮帮我.谢了。

  • 问题内容: 我需要使用与完全相同的方法创建一个类。 用Java做到这一点的最佳方法是什么? 我知道我不能照原样扩展String类。我没有在寻找需要复制的源代码的解决方案。例如,假设我需要名为的自定义类中的功能,该类具有相应的’myLength()`方法。 实施的最佳方法是什么? 我不是在寻找各种算法来找出字符串的长度,而是在重用的方法。现在,一旦我准备好上课,就可以在任何地方进行自定义操作了。 问

  • 下面是我的调试代码:

  • 问题内容: 看来在PHP对象中是通过引用传递的。甚至赋值运算符似乎也没有创建对象的副本。 这是一个简单的人为证明: 在这两种印刷情况下,我都会得到“之后”的印象 那么,如何通过值而不是通过引用将 $ a 传递给 set_b() ? 问题答案: 在PHP 5+中,对象是通过引用传递的。在PHP 4中,它们是按值传递的(这就是为什么它具有运行时按引用传递(已弃用)的原因)。 您可以在PHP5中使用“克

  • 我编写了一个简单的脚本,它应该合并(联合)一些数据帧并删除重复的数据帧。 例如,对于输入: 预期产出将是: 我编写了以下代码: 我通过以下方式调用这些函数: 我得到一个例外的: 我做错了什么?