重新排序紧凑型#

group reorder_compact

枚举

enum class duplicate_keep_option#

drop_duplicates API 用于保留重复行的选项。

值:

enumerator KEEP_ANY#

保留未指定的事件。

enumerator KEEP_FIRST#

保留第一次出现的内容。

enumerator KEEP_LAST#

保留最后一次出现。

enumerator KEEP_NONE#

保留无(移除所有)重复项的出现。

函数

std::unique_ptr<table> drop_nulls(table_view const &input, std::vector<size_type> const &keys, cudf::size_type keep_threshold, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

过滤表格以移除具有阈值计数的空元素。

根据keys中指定的列的有效性/空值来过滤input的行。

给定一个输入 table_view,如果 keys 的同一行 i 至少有 keep_threshold 个非空字段,则输入列中的行 i 将被复制到输出中。

此操作是稳定的:输入顺序在输出中保持不变。

输入中的任何非空列都被视为全部非空。

input   {col1: {1, 2,    3,    null},
         col2: {4, 5,    null, null},
         col3: {7, null, null, null}}
keys = {0, 1, 2} // All columns
keep_threshold = 2

output {col1: {1, 2}
        col2: {4, 5}
        col3: {7, null}}

注意

如果 input.num_rows() 为零,或者 keys 为空或没有空值,则不会出现错误,并且会返回一个空的 table

Parameters:
  • input[in] 要过滤的输入 table_view

  • keys[in] 表示来自 input 的关键列的索引向量

  • keep_threshold[in] 保留行所需的最小非空字段数。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

包含input中所有行的表格,其中keys中至少有keep_threshold个非空字段。

std::unique_ptr<table> drop_nulls(table_view const &input, std::vector<size_type> const &keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

过滤表格以移除空元素。

根据keys中指定的列的有效性/空值来过滤input的行。

input   {col1: {1, 2,    3,    null},
         col2: {4, 5,    null, null},
         col3: {7, null, null, null}}
keys = {0, 1, 2} //All columns

output {col1: {1}
        col2: {4}
        col3: {7}}

与 drop_nulls 相同,但默认将 keep_threshold 设置为 keys 中的列数。

Parameters:
  • input[in] 要过滤的输入 table_view

  • keys[in] 表示来自 input 的关键列的索引向量

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

包含input中所有行的表,其中keys列中没有空值。

std::unique_ptr<table> drop_nans(table_view const &input, std::vector<size_type> const &keys, cudf::size_type keep_threshold, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

过滤表格以移除超过阈值数量的NANs。

过滤input的行,考虑在keys中指定的列的NANs。这些关键列必须是浮点类型。

给定一个输入 table_view,如果 keys 的同一行 i 至少有 keep_threshold 个非 NAN 元素,则输入列中的行 i 将被复制到输出中。

此操作是稳定的:输入顺序在输出中保持不变。

input   {col1: {1.0, 2.0, 3.0, NAN},
         col2: {4.0, null, NAN, NAN},
         col3: {7.0, NAN, NAN, NAN}}
keys = {0, 1, 2} // All columns
keep_threshold = 2

output {col1: {1.0, 2.0}
        col2: {4.0, null}
        col3: {7.0, NAN}}

注意

如果 input.num_rows() 为零,或者 keys 为空,不会报错,并且会返回一个空的 table

Throws:

cudf::logic_error – 如果 keys 列不是浮点类型。

Parameters:
  • input[in] 要过滤的输入 table_view

  • keys[in] 表示来自 input 的关键列的索引向量

  • keep_threshold[in] 保留行所需的最小非NAN元素数量。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

包含所有input行的表格,其中keys中至少有keep_threshold个非NAN元素。

std::unique_ptr<table> drop_nans(table_view const &input, std::vector<size_type> const &keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

过滤表格以移除NANs。

过滤input的行,考虑在keys中指定的列的NANs。这些关键列必须是浮点类型。

input   {col1: {1.0, 2.0, 3.0, NAN},
         col2: {4.0, null, NAN, NAN},
         col3: {null, NAN, NAN, NAN}}
keys = {0, 1, 2} // All columns
keep_threshold = 2

output {col1: {1.0}
        col2: {4.0}
        col3: {null}}

与 drop_nans 相同,但默认将 keep_threshold 设置为 keys 中的列数。

Parameters:
  • input[in] 要过滤的输入 table_view

  • keys[in] 表示来自 input 的关键列的索引向量

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

包含input中所有行的表格,其中keys列中没有NANs。

std::unique_ptr<table> apply_boolean_mask(table_view const &input, column_view const &boolean_mask, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用布尔值boolean_mask作为掩码来过滤input

给定一个输入 table_view 和一个掩码 column_view,如果掩码中的对应元素 i 非空且为 true,则从 input 的每个 column_view 中复制元素 i 到相应的输出列。此操作是稳定的:输入顺序保持不变。

注意

如果 input.num_rows() 为零,则不会出现错误,并返回一个空表。

Throws:
Parameters:
  • input[in] 要过滤的输入 table_view

  • boolean_mask[in] 一个可为空的 column_view 类型的 type_id::BOOL8,用作过滤 input 的掩码。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

包含通过boolean_mask定义的过滤器筛选出的input所有行的副本的表格。

std::unique_ptr<table> unique(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

创建一个新表,删除连续的重复行。

给定一个input table_view,每一行都会被复制到输出表中以创建一组不同的行。如果有重复的行,复制哪一行取决于keep参数。

输出表中的行顺序与输入表中的行顺序保持一致。

如果表中没有等效的行,则一行是唯一的。如果没有相邻的等效行,则一行是唯一的。也就是说,保留唯一行会删除表/列中的所有重复项,而保留唯一行仅会删除连续分组中的重复项。

性能提示:如果输入是预排序的,cudf::unique 可以产生相同的结果(即相同的输出行集),但运行时间比 cudf::distinct 更短。

Throws:

cudf::logic_error – 如果 keys 列索引在 input 表中超出范围。

Parameters:
  • input[in] 输入 table_view 仅复制唯一行

  • keys[in] 表示来自 input 的关键列的索引向量

  • keep[in] 保留找到的重复项中的任意一个、第一个、最后一个或不保留任何重复项

  • nulls_equal[in] 标志,表示如果 null_equality::EQUAL,则空值相等;如果 null_equality::UNEQUAL,则空值不相等

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回表的设备内存的设备内存资源

Returns:

从每个等价行序列中提取唯一行的表格,由keep指定

std::unique_ptr<table> distinct(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

创建一个没有重复行的新表。

给定一个input table_view,每一行都会被复制到输出表中以创建一组不同的行。如果有重复的行,复制哪一行取决于keep参数。

输出表中行的顺序未指定。

性能提示:如果输入是预排序的,cudf::unique 可以产生相同的结果(即相同的输出行集),但运行时间比 cudf::distinct 更短。

Parameters:
  • input – 输入表

  • keys – 表示input表中关键列的索引向量

  • keep – 复制找到的重复项中的任意一个、第一个、最后一个或不复制

  • nulls_equal – 标志,用于指定是否应将空元素视为相等

  • nans_equal – 标志,用于指定是否应将NaN元素视为相等

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回表的设备内存资源

Returns:

表中包含不同行,顺序未指定

std::unique_ptr<column> distinct_indices(table_view const &input, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

创建一个列,包含输入表中所有不同行的索引。

给定一个input table_view,会生成一个包含所有不同行的行索引的输出向量。如果有重复的行,保留哪个索引取决于keep参数。

Parameters:
  • input – 输入表

  • keep – 获取找到的重复项的任何、第一个、最后一个或没有的索引

  • nulls_equal – 标志,用于指定是否应将空元素视为相等

  • nans_equal – 标志,用于指定NaN元素是否应被视为相等

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回向量的设备内存资源

Returns:

包含结果索引的列

std::unique_ptr<table> stable_distinct(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

创建一个没有重复行的新表,保留输入顺序。

给定一个input table_view,每一行都会被复制到输出表中以创建一组不同的行。输入行的顺序会被保留。如果有重复的行,复制哪一行取决于keep参数。

此API生成的输出行与cudf::distinct相同,但保留了输入顺序。

请注意,当keepKEEP_ANY时,选择保留哪个重复行是任意的,但返回的表将保留输入顺序。也就是说,如果键列包含1, 2, 1,而另一个值列包含3, 4, 5,结果可能包含值3, 44, 5,但不会包含4, 35, 4

Parameters:
  • input – 输入表

  • keys – 表示input表中关键列的索引向量

  • keep – 复制找到的重复项中的任意一个、第一个、最后一个或不复制

  • nulls_equal – 标志,用于指定是否应将空元素视为相等

  • nans_equal – 标志,用于指定是否应将NaN元素视为相等

  • stream – 用于设备内存操作和内核启动的CUDA流。

  • mr – 用于分配返回表的设备内存资源

Returns:

具有不同行的表格,保留输入顺序

cudf::size_type unique_count(column_view const &input, null_policy null_handling, nan_policy nan_handling, rmm::cuda_stream_view stream = cudf::get_default_stream())#

计算列中连续等效行的组数。

如果 null_handlingnull_policy::EXCLUDE 并且 nan_handlingnan_policy::NAN_IS_NULL,则 NaNnull 值都会被忽略。如果 null_handlingnull_policy::EXCLUDE 并且 nan_handlingnan_policy::NAN_IS_VALID,则只有 null 会被忽略,NaN 会被计入计数。

null被视为相等。

Parameters:
  • input[in] 用于计算连续等效行的 column_view

  • null_handling[in] 标志,用于在计数时包含或忽略 null

  • nan_handling[in] 标志,用于考虑 NaN==null 或不考虑

  • stream[in] 用于设备内存操作和内核启动的CUDA流

Returns:

列中连续等效行的组数

cudf::size_type unique_count(table_view const &input, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream())#

计算表中连续等效行的组数。

Parameters:
  • input[in] 表格,其连续等效行的组将被计数

  • nulls_equal[in] 标志,表示是否应将空元素视为相等。如果 null_equality::UNEQUAL,则空元素不相等。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

Returns:

列中连续等效行的组数

cudf::size_type distinct_count(column_view const &input, null_policy null_handling, nan_policy nan_handling, rmm::cuda_stream_view stream = cudf::get_default_stream())#

计算column_view中的不同元素数量。

如果 nulls_equal == nulls_equal::UNEQUAL,所有的 null 都是不同的。

给定一个输入 column_view,返回此 column_view 中不同元素的数量。

如果 null_handlingnull_policy::EXCLUDE 并且 nan_handlingnan_policy::NAN_IS_NULL,则 NaNnull 值都会被忽略。如果 null_handlingnull_policy::EXCLUDE 并且 nan_handlingnan_policy::NAN_IS_VALID,则只有 null 会被忽略,NaN 会被计入不同的计数中。

null被视为相等。

Parameters:
  • input[in] 要计算其不同元素的 column_view

  • null_handling[in] 标志,用于在计数时包含或忽略 null

  • nan_handling[in] 标志,用于考虑 NaN==null 或不考虑

  • stream[in] 用于设备内存操作和内核启动的CUDA流

Returns:

表中不同行的数量

cudf::size_type distinct_count(table_view const &input, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream())#

计算表中不同的行数。

Parameters:
  • input[in] 将计算其不同行的表

  • nulls_equal[in] 标志,表示是否应将空元素视为相等。如果 null_equality::UNEQUAL,则空元素不相等。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

Returns:

表中不同行的数量