变换 替换#

group 替换

枚举

enum class replace_policy : bool#

指定替换值相对于空行位置的策略。

PRECEDING 表示替换值是空行之前的第一个非空值。 FOLLOWING 表示替换值是空行之后的第一个非空值。

enumerator PRECEDING#
enumerator FOLLOWING#

函数

std::unique_ptr<column> replace_nulls(column_view const &input, column_view const &replacement, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用另一列的对应值替换列中的所有空值。

如果 input[i] 为 NULL,则 output[i] 将包含 replacement[i]inputreplacement 的类型和大小必须相同。

参数:
  • input[in] 将替换其空值的列

  • replacement[in] 将用于替换 input 中空值的 cudf::column

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

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

返回值:

input 的副本,其中空值已替换为 replacement 中的相应值。

std::unique_ptr<column> replace_nulls(column_view const &input, scalar const &replacement, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用标量替换列中的所有空值。

如果 input[i] 为 NULL,则 output[i] 将包含 replacementinputreplacement 的类型必须相同。

参数:
  • input[in] 将替换其空值的列

  • replacement[in] 用于替换 input 中空值的标量

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

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

返回值:

input 的副本,其中空值已替换为 replacement

std::unique_ptr<column> replace_nulls(column_view const &input, replace_policy const &replace_policy, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用前一个/后一个非空值替换列中的所有空值。

如果 input[i] 为 NULL,则 output[i] 将包含空值之前或之后的第一个非空值,具体取决于 replace_policy

参数:
  • input[in] 将替换其空值的列

  • replace_policy[in] 指定替换值相对于空值的位置

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

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

返回值:

input 的副本,其中空值根据 replace_policy 进行替换

std::unique_ptr<column> replace_nans(column_view const &input, column_view const &replacement, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用另一列的对应值替换列中的所有 NaN 值。

如果 input[i] 为 NaN,则 output[i] 将包含 replacement[i]

input        = {1.0, NaN, 4.0}
replacement  = {3.0, 9.0, 7.0}
output       = {1.0, 9.0, 4.0}

注意

空值不被视为 NaN

抛出:
  • cudf::logic_error – 如果 inputreplacement 的类型或大小不同。

  • cudf::logic_error – 如果 inputreplacement 不是浮点数据类型。

参数:
  • input – 将替换其 NaN 值的列

  • replacement – 将用于替换 input 中 NaN 值的 cudf::column

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

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

返回值:

input 的副本,其中 NaN 值已替换为 replacement 中的相应值。

std::unique_ptr<column> replace_nans(column_view const &input, scalar const &replacement, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用标量替换列中的所有 NaN 值。

如果 input[i] 为 NaN,则 output[i] 将包含 replacement

input        = {1.0, NaN, 4.0}
replacement  = 7.0
output       = {1.0, 7.0, 4.0}

注意

空值不被视为 NaN

抛出:
  • cudf::logic_error – 如果 inputreplacement 的类型不同。

  • cudf::logic_error – 如果 inputreplacement 不是浮点数据类型。

参数:
  • input – 将替换其 NaN 值的列

  • replacement – 将用于替换 input 中 NaN 值的 cudf::scalar

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

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

返回值:

input 的副本,其中 NaN 值已替换为 replacement

std::unique_ptr<column> find_and_replace_all(column_view const &input_col, column_view const &values_to_replace, column_view const &replacement_values, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回 `input_col` 的副本,将找到的任何 `values_to_replace[i]` 替换为 `replacement_values[i]`。

参数:
  • input_col – 要查找和替换值的列

  • values_to_replace – 要替换的值

  • replacement_values – 用于替换的值

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

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

返回值:

input_col 的副本,其中指定的值已替换

std::unique_ptr<column> clamp(column_view const &input, scalar const &lo, scalar const &lo_replace, scalar const &hi, scalar const &hi_replace, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将 input 中小于 lo 的值替换为 lo_replace,将大于 hi 的值替换为 hi_replace

如果 lo 无效,则在评估 input 时不会考虑 lo(本质上视为该类型的最小值)。如果 hi 无效,则在评估 input 时不会考虑 hi(本质上视为该类型的最大值)。

Example:
   input: {1, 2, 3, NULL, 5, 6, 7}

   valid lo and hi
   lo: 3, hi: 5, lo_replace : 0, hi_replace : 16
   output:{0, 0, 3, NULL, 5, 16, 16}

   invalid lo
   lo: NULL, hi: 5, lo_replace : 0, hi_replace : 16
   output:{1, 2, 3, NULL, 5, 16, 16}

   invalid hi
   lo: 3, hi: NULL, lo_replace : 0, hi_replace : 16
   output:{0, 0, 3, NULL, 5, 6, 7}

注意

:如果 lo 有效,则 lo_replace 应有效;如果 hi 有效,则 hi_replace 应有效

抛出:
参数:
  • input[in] 其元素将被限制范围的列

  • lo[in] 最小限制值。所有小于 lo 的元素将被替换为 lo_replace。如果为 null 则忽略。

  • lo_replace[in] 所有小于 lo 的元素将被替换为 lo_replace

  • hi[in] 最大限制值。所有大于 hi 的元素将被替换为 hi_replace。如果为 null 则忽略。

  • hi_replace[in] 所有大于 hi 的元素将被替换为 hi_replace

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

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

返回值:

根据 lohi 边界返回一个限制范围的列

std::unique_ptr<column> clamp(column_view const &input, scalar const &lo, scalar const &hi, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将 input 中小于 lo 的值替换为 lo,将大于 hi 的值替换为 hi

如果 lo 无效,则在评估 input 时不会考虑 lo(本质上视为该类型的最小值)。如果 hi 无效,则在评估 input 时不会考虑 hi(本质上视为该类型的最大值)。

Example:
   input: {1, 2, 3, NULL, 5, 6, 7}

   valid lo and hi
   lo: 3, hi: 5
   output:{3, 3, 3, NULL, 5, 5, 5}

   invalid lo
   lo: NULL, hi:5
   output:{1, 2, 3, NULL, 5, 5, 5}

   invalid hi
   lo: 3, hi:NULL
   output:{3, 3, 3, NULL, 5, 6, 7}
抛出:
参数:
  • input[in] 其元素将被限制范围的列

  • lo[in] 最小限制值。所有小于 lo 的元素将被替换为 lo。如果为 null 则忽略。

  • hi[in] 最大限制值。所有大于 hi 的元素将被替换为 hi。如果为 null 则忽略。

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

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

返回值:

根据 lohi 边界返回一个限制范围的列

std::unique_ptr<column> normalize_nans_and_zeros(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())#

从浮点元素列中复制,并将 -NaN-0.0 分别替换为 +NaN+0.0

使用以下规则转换 input 中的浮点值:将 -NaN 转换为 NaN 将 -0.0 转换为 0.0

抛出:

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

参数:
  • input[in] 要复制和规范化的浮点元素的 column_view

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

  • mr[in] 用于分配输出数据的 device_memory_resource 分配器

返回值:

包含修改后数据的新列

void normalize_nans_and_zeros(mutable_column_view &in_out, rmm::cuda_stream_view stream = cudf::get_default_stream())#

修改浮点元素列,将所有 -NaN-0.0 分别替换为 +NaN+0.0

使用以下规则转换 in_out 中的浮点值:将 -NaN 转换为 NaN 将 -0.0 转换为 0.0

抛出:

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

参数:
  • in_out[inout] 要规范化的浮点元素

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