转换替换#

group transformation_replace

枚举

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 必须是相同类型和大小。

Parameters:
  • input[in] 一个列,其空值将被替换

  • replacement[in] 一个 cudf::column,其值将替换输入中的空值

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

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

Returns:

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 必须具有相同的类型。

Parameters:
  • input[in] 一个列,其空值将被替换

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

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

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

Returns:

复制 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 在 NULL 值之前或之后的第一个非 NULL 值。

Parameters:
  • input[in] 一个列,其空值将被替换

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

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

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

Returns:

复制 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

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

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

Parameters:
  • input – 一个列,其NaN值将被替换

  • replacement – 一个 cudf::column,其值将替换输入中的 NaN 值

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

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

Returns:

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

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

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

Parameters:
  • input – 一个列,其NaN值将被替换

  • replacement – 一个 cudf::scalar,其值将替换输入中的 NaN 值

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

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

Returns:

一份将NaN值替换为replacementinput副本

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]

Parameters:
  • input_col – 要查找并替换值的列

  • values_to_replace – 要替换的值

  • replacement_values – 要替换的值

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

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

Returns:

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 无效,则在评估输入时将不考虑 lo(基本上视为该类型的最小值)。如果 hi 无效,则在评估输入时将不考虑 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 应该有效。

Throws:
Parameters:
  • 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] 用于分配返回列的设备内存的设备内存资源

Returns:

根据 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 无效,则在评估输入时将不考虑 lo(基本上视为该类型的最小值)。如果 hi 无效,则在评估输入时将不考虑 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}
Throws:
Parameters:
  • input[in] 其元素将被钳制的列

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

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

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

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

Returns:

根据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

Throws:

cudf::logic_error – 如果列没有浮点数据类型。

Parameters:
  • input[in] column_view 要复制和归一化的浮点元素

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

  • mr[in] 用于分配输出数据的设备内存资源分配器

Returns:

带有修改数据的新列

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

Throws:

cudf::logic_error – 如果列没有浮点数据类型。

Parameters:
  • in_out[inout] 要归一化的浮点元素

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