字典更新#
- group 更新键
函数
-
std::unique_ptr<column> add_keys(dictionary_column_view const &dictionary_column, column_view const &new_keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过将新键元素添加到现有字典列来创建新的字典列。
如果任何新键在任何现有字典元素之前排序,则更新索引。
d1 = { keys=["a", "c", "d"], indices=[2, 0, 1, 0, 1]} d2 = add_keys( d1, ["b", "c"] ) d2 is now {keys=["a", "b", "c", "d"], indices=[3, 0, 2, 0, 2]}
输出列将具有与输入列相同的行数。输入列中的空条目被复制到输出列。此操作不会创建新的空条目。
- 抛出:
cudf::logic_error – 如果 new_keys 的类型与 dictionary_column 中的键类型不匹配。
cudf::logic_error – 如果 new_keys 包含空值。
- 参数:
dictionary_column – 现有字典列。
new_keys – 要合并到 dictionary_column 中的新键。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列设备内存的设备内存资源。
- 返回:
新的字典列。
-
std::unique_ptr<column> remove_keys(dictionary_column_view const &dictionary_column, column_view const &keys_to_remove, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过从现有 dictionary_column 中移除指定的键来创建新的字典列。
输出列将具有与输入列相同的行数。输入列中的空条目被复制到输出列。索引会更新为剩余键的新位置。任何指向已移除键的索引会将该行设为空值。
请注意,“a” 已被移除,因此输出行 [2] 变为空值。d1 = {keys=["a", "c", "d"], indices=[2, 0, 1, 0, 2]} d2 = remove_keys( d1, ["b", "c"] ) d2 is now {keys=["a", "d"], indices=[1, 0, x, 0, 1], valids=[1, 1, 0, 1, 1]}
- 抛出:
cudf::logic_error – 如果 keys_to_remove 的类型与 dictionary_column 中的键类型不匹配。
cudf::logic_error – 如果 keys_to_remove 包含空值。
- 参数:
dictionary_column – 现有字典列。
keys_to_remove – 要从 dictionary_column 中移除的键。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列设备内存的设备内存资源。
- 返回:
新的字典列。
-
std::unique_ptr<column> remove_unused_keys(dictionary_column_view const &dictionary_column, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过移除未被任何索引引用的键来创建新的字典列。
索引更新为剩余键的新位置值。
d1 = {["a","c","d"],[2,0,2,0]} d2 = remove_unused_keys(d1) d2 is now {["a","d"],[1,0,1,0]}
- 参数:
dictionary_column – 现有字典列。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列设备内存的设备内存资源。
- 返回:
新的字典列。
-
std::unique_ptr<column> set_keys(dictionary_column_view const &dictionary_column, column_view const &keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过仅将指定的键应用于现有 dictionary_column 来创建新的字典列。
在 keys 参数中找到的任何新元素都会添加到输出字典中。不在 keys 参数中的任何现有键将被移除。
输出列的行数将与输入列的行数相同。现有空条目被复制到输出列。索引会更新以反映新键的位置值。任何指向已移除键的索引会将这些行设为空值。
d1 = {keys=["a", "b", "c"], indices=[2, 0, 1, 2, 1]} d2 = set_keys(existing_dict, ["b","c","d"]) d2 is now {keys=["b", "c", "d"], indices=[1, x, 0, 1, 0], valids=[1, 0, 1, 1, 1]}
- 抛出:
cudf::logic_error – 如果 keys 的类型与 dictionary_column 中的键类型不匹配。
cudf::logic_error – 如果 keys 包含空值。
- 参数:
dictionary_column – 现有字典列。
keys – 用于输出列的新键。不能包含空值。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列设备内存的设备内存资源。
- 返回:
新的字典列。
-
std::vector<std::unique_ptr<column>> match_dictionaries(cudf::host_span<dictionary_column_view const> input, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建新的字典,其键合并自输入字典。
这将连接每个字典的键,然后对每个字典调用
set_keys
。结果是一个包含通用键集的新字典向量。- 参数:
input – 用于匹配键的字典列。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列设备内存的设备内存资源。
- 返回:
新的字典列。
-
std::unique_ptr<column> add_keys(dictionary_column_view const &dictionary_column, column_view const &new_keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#