字典更新#
- group dictionary_update
函数
-
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())#
通过将新键元素添加到现有的dictionary_column来创建一个新的字典列。
如果任何新键在现有字典元素之前排序,则索引会更新。
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]}输出列将具有与输入列相同的行数。输入列中的空条目将被复制到输出列中。此操作不会创建新的空条目。
- Throws:
cudf::logic_error – 如果 new_keys 的类型与 dictionary_column 中的 keys 类型不匹配。
cudf::logic_error – 如果新的键包含空值。
- Parameters:
dictionary_column – 现有的字典列。
new_keys – 要合并到 dictionary_column 中的新键。
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
新字典列。
-
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 中移除指定的键来创建一个新的字典列。
输出列将具有与输入列相同的行数。输入列中的空条目将被复制到输出列中。索引将更新为剩余键的新位置。任何指向已删除键的索引都会将该行设置为空。
Note that “a” has been removed so output row[2] becomes null.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]}- Throws:
cudf::logic_error – 如果 keys_to_remove 的类型与 dictionary_column 中的 keys 类型不匹配。
cudf::logic_error – 如果 keys_to_remove 包含空值。
- Parameters:
dictionary_column – 现有的字典列。
keys_to_remove – 要从 dictionary_column 中移除的键。
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
新字典列。
-
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]}- Parameters:
dictionary_column – 现有的字典列。
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
新字典列。
-
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())#
通过仅将指定的键应用于现有的字典列来创建一个新的字典列。
在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]}- Throws:
cudf::logic_error – 如果键的类型与字典列中的键类型不匹配。
cudf::logic_error – 如果键包含空值。
- Parameters:
dictionary_column – 现有的字典列。
keys – 用于输出列的新键。不能包含空值。
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
新字典列。
-
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。结果是一个具有共同键集的新字典向量。- Parameters:
input – 用于匹配键的字典列。
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
新的字典列。
-
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())#