字符串组合#
- group strings_combine
枚举
函数
-
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']
- Throws:
cudf::logic_error – 如果分隔符无效。
- Parameters:
input – 此操作的字符串
separator – 应该插入每个字符串之间的字符串。默认为空字符串。
narep – 用于替换找到的任何空字符串的字符串。默认的 invalid-scalar 将忽略任何空条目。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
包含一个字符串的新列。
-
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())#
使用分隔符将每行的字符串列列表连接起来,并将结果作为字符串列返回。
每个新字符串都是通过连接同一行中的字符串,并使用为该行提供的行分隔符分隔来创建的。以下规则适用:
如果给定行的行分隔符为null,则该行的输出列为null,除非有一个有效的
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']- Throws:
cudf::logic_error – 如果没有指定输入列 - 表视图为空
cudf::logic_error – 如果输入列不全是字符串列。
cudf::logic_error – 如果
separators和strings_columns的行数不匹配
- Parameters:
strings_columns – 要连接的字符串列列表
separators – 提供给定行分隔符的字符串列
separator_narep – 用于替换给定行的空分隔符的字符串。默认值为 invalid-scalar,表示不进行行分隔符值的替换。
col_narep – 应用于替换任何列中找到的空字符串的字符串。默认值为 invalid-scalar,表示不进行空列值替换。
separate_nulls – 如果为YES,则在
col_narep有效时,空行也会包含分隔符。stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配设备内存的资源
- Returns:
带有连接结果的新列
-
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']- Throws:
cudf::logic_error – 如果输入列不全是字符串列。
cudf::logic_error – 如果分隔符无效。
cudf::logic_error – 如果只指定了一列
- Parameters:
strings_columns – 要连接的字符串列列表
separator – 应该插入到每行字符串之间的字符串。默认为空字符串。
narep – 用于替换在任何列中找到的任何空字符串的字符串。默认值为 invalid-scalar,意味着任何列中的空条目将导致该行的结果为 null。
separate_nulls – 如果为YES,则在
narep有效时,空行将包含分隔符stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
带有连接结果的新列
-
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,任何空列表的行将导致输出为空字符串。否则,输出将为 null。在特殊情况下,当输入列表行包含所有空元素时,无论
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']
- Throws:
cudf::logic_error – 如果输入列不是字符串列表列。
cudf::logic_error – 如果
separators和lists_strings_column的行数不匹配
- Parameters:
lists_strings_column – 包含要连接的字符串列表的列
separators – 提供连接分隔符的字符串列
separator_narep – 应用于替换空分隔符的字符串。默认是一个无效标量,表示包含空分隔符的行将在相应的输出行中产生空字符串。
string_narep – 用于替换任何非空列表行中的空字符串的字符串。默认值是一个无效标量,表示包含空字符串的列表行将在相应的输出行中产生一个空字符串。
separate_nulls – 如果为YES,则在
narep有效时,空行将包含分隔符empty_list_policy – 如果设置为 EMPTY_STRING,任何空列表的输入行将导致一个空字符串。否则,它将导致一个 null。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
带有连接结果的新字符串列
-
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,任何空列表的行将导致输出为空字符串。否则,输出将为 null。在特殊情况下,当输入列表行包含所有空元素时,输出将与空输入列表的情况相同,无论
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']
- Throws:
cudf::logic_error – 如果输入列不是字符串列表列。
cudf::logic_error – 如果分隔符无效。
- Parameters:
lists_strings_column – 包含要连接的字符串列表的列
separator – 在每个列表行的字符串之间插入的字符串。默认为空字符串。
narep – 用于替换任何非空列表行中的空字符串的字符串。默认值是一个无效标量,表示包含空字符串的列表行将在相应的输出行中产生一个空字符串。
separate_nulls – 如果为YES,则在
narep有效时,空行将包含分隔符empty_list_policy – 如果设置为 EMPTY_STRING,任何空列表的输入行将导致一个空字符串。否则,它将导致一个 null。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
带有连接结果的新字符串列
-
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())#