如何在python数据表中查找和标记重复项

如何在python数据表中查找和标记重复项,python,py-datatable,Python,Py Datatable,我想按组标识py数据表中的重复行(并创建一个带有bool的helper列C) 它应该按照以下思路工作: DT = dt.Frame(A=[1, 2, 1, 2, 2, 1], B=list("XXYYYY")) 我得到->类型错误:应该是一个框架,当我对其应用分组以找出组的唯一观察值时,得到的是类“datatable.expr.expr.expr” 但是,unique()不起作用,关于py datatable的可用函数的文档非常稀少: 我不确定py datatable是否比R datatabl

我想按组标识py数据表中的重复行(并创建一个带有bool的helper列C)

它应该按照以下思路工作:

DT = dt.Frame(A=[1, 2, 1, 2, 2, 1], B=list("XXYYYY"))
我得到->类型错误:应该是一个框架,当我对其应用分组以找出组的唯一观察值时,得到的是类“datatable.expr.expr.expr”

但是,unique()不起作用,关于py datatable的可用函数的文档非常稀少:


我不确定py datatable是否比R datatable落后那么多,这是不可能的,因为这似乎是一个基本操作,但我找不到解决方案。是否有人拥有它,或者可以告诉我资源的方向?理想情况下,这将包括在一行代码的新列C中指定布尔值(重复或不重复)的语法。

据我所知

他想创建一个列来指示特定的观察结果是否重复

以下是我的解决方案:

import datatable as dt
from datatable import by,f,count
样本数据表-

DT_EX = dt.Frame(A=list("XXYYYYXX"),B=[1, 2, 1, 2, 2, 1,3,3])

然后执行这个代码块-

DT[:,count(),by(f.A,f.B)][:,f[:].extend({'duplicated': f.count>1 })]
它的工作原理类似于对列A、B进行第一次分组,计算每组的观察值。 接下来,它使用一个名为duplicated的新列扩展datatable,在这个列中,如果count的值大于1,则应将其填充为duplicated“True”或“False”

输出为-

Out[5]: 
   | A    B  count  duplicated
-- + --  --  -----  ----------
 0 | X    1      1           0
 1 | X    2      1           0
 2 | X    3      2           1
 3 | Y    1      2           1
 4 | Y    2      2           1

[5 rows x 4 columns]


请添加您的预期输出谢谢您的回答。在研究你的想法后,我还发现了一个更紧凑的替代方案<代码>从数据表导入更新
DT[:,更新(重复=(计数()>1)),由(f.A,f.B)]
Out[5]: 
   | A    B  count  duplicated
-- + --  --  -----  ----------
 0 | X    1      1           0
 1 | X    2      1           0
 2 | X    3      2           1
 3 | Y    1      2           1
 4 | Y    2      2           1

[5 rows x 4 columns]