如何在 python 数据表中查找和标记重复项
How to find and mark duplicates in a python datatable
我想按组识别 py-dtatable 中的重复行(并创建一个带有布尔值的辅助列 C)。
它应该按照以下方式工作:
DT = dt.Frame(A=[1, 2, 1, 2, 2, 1], B=list("XXYYYY"))
我得到 -> TypeError: Expected a Frame,而不是 class 'datatable.expr.expr.Expr' 当我在其上应用分组以找出一个组的独特观察结果时。
但是,unique() 不起作用,关于 py-datatable 可用函数的文档非常稀疏:https://datatable.readthedocs.io/en/v0.10.1/using-datatable.html#perform-groupby-calculations
我不确定 py-datatable 是否落后于 R datatable 并且它不可能,因为它看起来像是一个基本操作,但我找不到解决方案。有人有它或者可以指出我的资源方向吗?理想情况下,这将包括在一行代码中的新列 C 中分配 bool(重复或不重复)的语法。
据我了解,
他想创建一个列来指示特定观察是否重复。
这是我的解决方案:
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])
Out[3]:
| A B
-- + -- --
0 | X 1
1 | X 2
2 | Y 1
3 | Y 2
4 | Y 2
5 | Y 1
6 | X 3
7 | X 3
[8 rows x 2 columns]
并执行这段代码块-
DT[:,count(),by(f.A,f.B)][:,f[:].extend({'duplicated': f.count>1 })]
它的工作方式类似于首先对 A、B 列应用分组,计算每组的观察值。
接下来,它使用一个名为 duplicated 的新列扩展数据表,在此情况下,如果 count 具有超过 1 个值,则应将其填充为 duplicated 'True' else '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]
我想按组识别 py-dtatable 中的重复行(并创建一个带有布尔值的辅助列 C)。
它应该按照以下方式工作:
DT = dt.Frame(A=[1, 2, 1, 2, 2, 1], B=list("XXYYYY"))
我得到 -> TypeError: Expected a Frame,而不是 class 'datatable.expr.expr.Expr' 当我在其上应用分组以找出一个组的独特观察结果时。
但是,unique() 不起作用,关于 py-datatable 可用函数的文档非常稀疏:https://datatable.readthedocs.io/en/v0.10.1/using-datatable.html#perform-groupby-calculations
我不确定 py-datatable 是否落后于 R datatable 并且它不可能,因为它看起来像是一个基本操作,但我找不到解决方案。有人有它或者可以指出我的资源方向吗?理想情况下,这将包括在一行代码中的新列 C 中分配 bool(重复或不重复)的语法。
据我了解,
他想创建一个列来指示特定观察是否重复。
这是我的解决方案:
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])
Out[3]:
| A B
-- + -- --
0 | X 1
1 | X 2
2 | Y 1
3 | Y 2
4 | Y 2
5 | Y 1
6 | X 3
7 | X 3
[8 rows x 2 columns]
并执行这段代码块-
DT[:,count(),by(f.A,f.B)][:,f[:].extend({'duplicated': f.count>1 })]
它的工作方式类似于首先对 A、B 列应用分组,计算每组的观察值。 接下来,它使用一个名为 duplicated 的新列扩展数据表,在此情况下,如果 count 具有超过 1 个值,则应将其填充为 duplicated 'True' else '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]