2

我正在练习如何对pydatatable 的数据帧执行连接操作。

第一个 DT 创建如下,

DT_1=dt.Frame({"title": np.array(['stat','math','stat','math','esp']),
               "score": np.array([23,43,21,50,16])})

第二个 DT 创建如下,

DT_2=dt.Frame({"title": np.array(['stat','esp','math','stat']),
               "price": np.array([350,450,530,430])})

我正在设置一个键DT_2.key = "title",因为它有重复的标题,它给出了一个键值错误:ValueError: Cannot set a key: the values are not unique

我想知道在 python 数据表中是否对键强制执行唯一性?而在R 中,数据表的唯一性没有被强制执行,并且允许重复的键值。

是否有任何参考文档?

4

1 回答 1

2

键列中的值必须是唯一的,请参阅此处的文档:https ://datatable.readthedocs.io/en/latest/api/frame.html#datatable.Frame.key 。

您可以将键列视为将 Frame 转换为逐行字典,其中字典的“键”部分位于键列中,而“值”部分位于所有其他列中. “键”可能由多列组成,在这种情况下,每一行的键值是每个键列的值的元组。

因此,datatable 的键等价于 pandas 的索引(通过.set_index()),或 SQL 主键。

于 2020-01-03T20:08:31.793 回答