字符串组合#
- group 组合
枚举
函数
-
std::unique_ptr<column> join_strings(strings_column_view const &input, string_scalar const &separator = string_scalar(""), string_scalar const &narep = string_scalar("", false), rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将列中的所有字符串连接成一个由可选分隔符字符串分隔的新字符串。
这返回一个包含一个字符串的列。除非
narep
参数指定了替换字符串,否则所有空条目都将被忽略。Example: s = ['aa', null, '', 'zz' ] r = join_strings(s,':','_') r is ['aa:_::zz']
- 抛出异常:
cudf::logic_error – 如果分隔符无效。
- 参数:
input – 用于此操作的字符串
separator – 应插入到每个字符串之间的字符串。默认为空字符串。
narep – 用于替换找到的任何空字符串的字符串。默认的无效标量将忽略所有空条目。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源。
- 返回:
包含一个字符串的新列。
-
std::unique_ptr<column> concatenate(table_view const &strings_columns, strings_column_view const &separators, string_scalar const &separator_narep = string_scalar("", false), string_scalar const &col_narep = string_scalar("", false), separator_on_nulls separate_nulls = separator_on_nulls::YES, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用每行的分隔符连接字符串列列表,并将结果作为字符串列返回。
每个新字符串都是通过将同一行中的字符串使用该行提供的行分隔符进行连接来创建的。以下规则适用
如果给定行的行分隔符为空,则该行的输出列为空,除非存在有效的
separator_narep
如果
separate_nulls
为YES
,则分隔符应用于两个输出行值之间,如果separate_nulls
为NO
,则仅应用于有效行之间。如果
separator_narep
和col_narep
都有效,则输出列始终不可为空。
Example: c0 = ['aa', null, '', 'ee', null, 'ff'] c1 = [null, 'cc', 'dd', null, null, 'gg'] c2 = ['bb', '', null, null, null, 'hh'] sep = ['::', '%%', '^^', '!', '*', null] out = concatenate({c0, c1, c2}, sep) // all rows have at least one null or sep[i]==null out is [null, null, null, null, null, null] sep_rep = '+' out = concatenate({c0, c1, c2}, sep, sep_rep) // all rows with at least one null output as null out is [null, null, null, null, null, 'ff+gg+hh'] col_narep = '-' sep_na = non-valid scalar out = concatenate({c0, c1, c2}, sep, sep_na, col_narep) // only the null entry in the sep column produces a null row out is ['aa::-::bb', '-%%cc%%', '^^dd^^-', 'ee!-!-', '-*-*-', null] col_narep = '' out = concatenate({c0, c1, c2}, sep, sep_rep, col_narep, separator_on_nulls:NO) // parameter suppresses separator for null rows out is ['aa::bb', 'cc%%', '^^dd', 'ee', '', 'ff+gg+hh']
- 抛出异常:
cudf::logic_error – 如果未指定输入列 - 表视图为空
cudf::logic_error – 如果输入列不是所有字符串列。
cudf::logic_error – 如果
separators
和strings_columns
的行数不匹配
- 参数:
strings_columns – 要连接的字符串列列表
separators – 提供给定行分隔符的字符串列
separator_narep – 用于替换给定行的空分隔符的字符串。默认的无效标量表示不替换行分隔符值。
col_narep – 应用于替换任何列中找到的空字符串的字符串。默认的无效标量表示不替换空列值。
separate_nulls – 如果为 YES,并且
col_narep
有效,则分隔符包含在空行中。stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配设备内存的资源
- 返回:
包含连接结果的新列
-
std::unique_ptr<column> concatenate(table_view const &strings_columns, string_scalar const &separator = string_scalar(""), string_scalar const &narep = string_scalar("", false), separator_on_nulls separate_nulls = separator_on_nulls::YES, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
按行连接给定的字符串列列表,并返回单个字符串列结果。
每个新字符串都是通过将同一行中的字符串使用提供的分隔符进行连接来创建的。
任何带有空条目的行将导致相应的输出行为空条目,除非指定了 narep 字符串来替换它。
如果
separate_nulls
设置为NO
并且narep
有效,则在空元素之间不添加分隔符。否则,如果narep
有效,则始终添加分隔符。输入
strings_columns
表中必须指定多个列。Example: s1 = ['aa', null, '', 'dd'] s2 = ['', 'bb', 'cc', null] out = concatenate({s1, s2}) out is ['aa', null, 'cc', null] out = concatenate({s1, s2}, ':', '_') out is ['aa:', '_:bb', ':cc', 'dd:_'] out = concatenate({s1, s2}, ':', '', separator_on_nulls::NO) out is ['aa:', 'bb', ':cc', 'dd']
- 抛出异常:
cudf::logic_error – 如果输入列不是所有字符串列。
cudf::logic_error – 如果分隔符无效。
cudf::logic_error – 如果只指定了一列
- 参数:
strings_columns – 要连接的字符串列列表
separator – 应插入到每行中每个字符串之间的字符串。默认为空字符串。
narep – 用于替换任何列中找到的空字符串的字符串。默认的无效标量表示任何列中的任何空条目将导致该行的结果为空。
separate_nulls – 如果为 YES,并且
narep
有效,则分隔符包含在空行中stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含连接结果的新列
-
std::unique_ptr<column> join_list_elements(lists_column_view const &lists_strings_column, strings_column_view const &separators, string_scalar const &separator_narep = string_scalar("", false), string_scalar const &string_narep = string_scalar("", false), separator_on_nulls separate_nulls = separator_on_nulls::YES, output_if_empty_list empty_list_policy = output_if_empty_list::EMPTY_STRING, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
给定一个字符串列表列(每行是一个字符串列表),连接每行中的字符串,并返回单个字符串列结果。
每个新字符串都是通过将同一行(同一列表元素)中的字符串使用
separators
字符串列中提供的行分隔符进行连接来创建的。空列表行将始终在输出行中产生空字符串。任何包含空元素的非空列表行将导致相应的输出行为空,除非提供了有效的
string_narep
标量来替换它。separators
列中的任何空行也将导致输出行为空,除非提供了有效的separator_narep
标量来替换空分隔符。如果
separate_nulls
设置为NO
并且string_narep
有效,则在空元素之间不添加分隔符。否则,如果string_narep
有效,则始终添加分隔符。如果
empty_list_policy
设置为EMPTY_STRING
,任何空列表输入行将导致输出空字符串。否则,输出将为空。在输入列表行包含所有空元素的特殊情况下,无论
string_narep
和separate_nulls
的值如何,输出将与空输入列表的情况相同。Example: s = [ ['aa', 'bb', 'cc'], null, ['', 'dd'], ['ee', null], ['ff', 'gg'] ] sep = ['::', '%%', '!', '*', null] out = join_list_elements(s, sep) out is ['aa::bb::cc', null, '!dd', null, null] out = join_list_elements(s, sep, ':', '_') out is ['aa::bb::cc', null, '!dd', 'ee*_', 'ff:gg'] out = join_list_elements(s, sep, ':', '', separator_on_nulls::NO) out is ['aa::bb::cc', null, '!dd', 'ee', 'ff:gg']
- 抛出异常:
cudf::logic_error – 如果输入列不是字符串列表列。
cudf::logic_error – 如果
separators
和lists_strings_column
的行数不匹配
- 参数:
lists_strings_column – 包含要连接的字符串列表的列
separators – 提供连接分隔符的字符串列
separator_narep – 应用于替换空分隔符的字符串。默认是无效标量,表示包含空分隔符的行将在相应的输出行中产生空字符串。
string_narep – 用于替换任何非空列表行中的空字符串的字符串。默认是无效标量,表示包含空字符串的列表行将在相应的输出行中产生空字符串。
separate_nulls – 如果为 YES,并且
narep
有效,则分隔符包含在空行中empty_list_policy – 如果设置为 EMPTY_STRING,任何空列表输入行将产生空字符串。否则,将产生空值。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含连接结果的新字符串列
-
std::unique_ptr<column> join_list_elements(lists_column_view const &lists_strings_column, string_scalar const &separator = string_scalar(""), string_scalar const &narep = string_scalar("", false), separator_on_nulls separate_nulls = separator_on_nulls::YES, output_if_empty_list empty_list_policy = output_if_empty_list::EMPTY_STRING, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
给定一个字符串列表列(每行是一个字符串列表),连接每行中的字符串,并返回单个字符串列结果。
每个新字符串都是通过将同一行(同一列表元素)中的字符串使用提供的
separator
进行连接来创建的。空列表行将始终在输出行中产生空字符串。任何包含空元素的非空列表行将导致相应的输出行为空,除非指定了
narep
字符串来替换它。如果
separate_nulls
设置为NO
并且narep
有效,则在空元素之间不添加分隔符。否则,如果narep
有效,则始终添加分隔符。如果
empty_list_policy
设置为EMPTY_STRING
,任何空列表输入行将导致输出空字符串。否则,输出将为空。在输入列表行包含所有空元素的特殊情况下,无论
narep
和separate_nulls
的值如何,输出将与空输入列表的情况相同。Example: s = [ ['aa', 'bb', 'cc'], null, ['', 'dd'], ['ee', null], ['ff'] ] out = join_list_elements(s) out is ['aabbcc', null, 'dd', null, 'ff'] out = join_list_elements(s, ':', '_') out is ['aa:bb:cc', null, ':dd', 'ee:_', 'ff'] out = join_list_elements(s, ':', '', separator_on_nulls::NO) out is ['aa:bb:cc', null, ':dd', 'ee', 'ff']
- 抛出异常:
cudf::logic_error – 如果输入列不是字符串列表列。
cudf::logic_error – 如果分隔符无效。
- 参数:
lists_strings_column – 包含要连接的字符串列表的列
separator – 插入到每个列表行字符串之间的字符串。默认为空字符串。
narep – 用于替换任何非空列表行中的空字符串的字符串。默认是无效标量,表示包含空字符串的列表行将在相应的输出行中产生空字符串。
separate_nulls – 如果为 YES,并且
narep
有效,则分隔符包含在空行中empty_list_policy – 如果设置为 EMPTY_STRING,任何空列表输入行将产生空字符串。否则,将产生空值。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含连接结果的新字符串列
-
std::unique_ptr<column> join_strings(strings_column_view const &input, string_scalar const &separator = string_scalar(""), string_scalar const &narep = string_scalar("", false), rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#