字符串转换#
- group strings_convert
函数
-
std::unique_ptr<column> to_booleans(strings_column_view const &input, string_scalar const &true_string, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过解析提供的字符串列中的字符串中的布尔值,返回一个新的BOOL8列。
任何空条目将导致输出列中的相应空条目。
- Parameters:
input – 此操作的字符串实例
true_string – 用于表示true的字符串。不匹配的字符串为false
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
从字符串转换的新 BOOL8 列
-
std::unique_ptr<column> from_booleans(column_view const &booleans, string_scalar const &true_string, string_scalar const &false_string, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的字符串列,将提供的列中的布尔值转换为字符串。
任何空条目将导致输出列中的相应空条目。
- Throws:
cudf::logic_error – 如果输入列不是BOOL8类型。
- Parameters:
booleans – 要转换的布尔列
true_string – 用于输出列中表示true的字符串
false_string – 用于输出列中表示false的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> to_timestamps(strings_column_view const &input, data_type timestamp_type, std::string_view format, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的时间戳列,将字符串列转换为时间戳,使用提供的格式模式。
格式模式可以包括以下说明符:“%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z”
Specifier
描述
%d
月份中的第几天:01-31
%m
一年中的月份:01-12
%y
不带世纪的年份:00-99。[0,68] 映射到 [2000,2068],[69,99] 映射到 [1969,1999]
%Y
带世纪的年份:0001-9999
%H
一天中的24小时制:00-23
%I
一天中的12小时制:01-12
%M
小时中的分钟:00-59
%S
分钟中的秒数:00-59。不支持闰秒。
%f
6位微秒:000000-999999
%z
UTC偏移量,格式为±HHMM 示例 +0500
%j
一年中的第几天:001-366
%p
仅识别‘AM’, ‘PM’ 或 ‘am’, ‘pm’
%W
一年中的周数,以星期一作为一周的第一天:00-53
%w
星期几:0-6 = 星期日-星期六
%U
一年中的周数,以周日为一周的第一天:00-53
%u
星期几:1-7 = 星期一-星期日
目前不支持其他说明符。
无效的格式不会被检查。如果字符串包含意外或不足的字符,则该输出行条目的时间戳值是未定义的。
任何空字符串条目将导致输出列中的相应行为空。
生成的时间单位由
timestamp_type参数指定。时间单位与“%f”说明符解析的数字位数无关。“%f”支持一个精度值来读取数字位数。使用单个整数值(1-9)指定精度,如下所示:使用“%3f”表示毫秒,“%6f”表示微秒,“%9f”表示纳秒。虽然“%S”不支持闰秒,但不会对值进行检查。可以使用cudf::strings::is_timestamp来验证值的有效范围。
如果同时指定了“%W”/“%w”(或“%U/%u”)和“%m”/“%d”,则在计算时间戳结果的日期部分时,“%W”/U和“%w”/u的值优先。
- Throws:
cudf::logic_error – 如果 timestamp_type 不是时间戳类型。
- Parameters:
input – 此操作的字符串实例
timestamp_type – 用于创建输出列的时间戳类型
format – 指定字符串中时间戳格式的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新的日期时间列
-
std::unique_ptr<column> is_timestamp(strings_column_view const &input, std::string_view format, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
验证给定的字符串列可以使用提供的格式模式解析为时间戳。
格式模式可以包括以下说明符:“%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z”
Specifier
描述
%d
月份中的第几天:01-31
%m
一年中的月份:01-12
%y
不带世纪的年份:00-99。[0,68] 映射到 [2000,2068],[69,99] 映射到 [1969,1999]
%Y
带世纪的年份:0001-9999
%H
一天中的24小时制:00-23
%I
一天中的12小时制:01-12
%M
小时中的分钟:00-59
%S
分钟中的秒数:00-59。不支持闰秒。
%f
6位微秒:000000-999999
%z
UTC偏移量,格式为±HHMM 示例 +0500
%j
一年中的第几天:001-366
%p
仅识别‘AM’, ‘PM’ 或 ‘am’, ‘pm’
%W
一年中的周数,以星期一作为一周的第一天:00-53
%w
星期几:0-6 = 星期日-星期六
%U
一年中的周数,以周日为一周的第一天:00-53
%u
星期几:1-7 = 星期一-星期日
目前不支持其他格式说明符。“%f”支持精度值来读取数字。使用单个整数值(1-9)指定精度,如下所示:使用“%3f”表示毫秒,“%6f”表示微秒,“%9f”表示纳秒。
任何空字符串条目将导致输出列中的相应行为空。
这将返回一个类型为 BOOL8 的列,其中
true行表示相应的输入字符串可以使用给定的格式正确解析。- Parameters:
input – 此操作的字符串实例
format – 指定字符串中时间戳格式的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新的 BOOL8 列
-
std::unique_ptr<column> from_timestamps(column_view const ×tamps, std::string_view format = "%Y-%m-%dT%H:%M:%SZ", strings_column_view const &names = strings_column_view(column_view{data_type{type_id::STRING}, 0, nullptr, nullptr, 0}), rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的字符串列,使用提供的格式模式将时间戳列转换为字符串。
格式模式可以包括以下说明符:“%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z,%Z”
Specifier
描述
%d
月份中的第几天:01-31
%m
一年中的月份:01-12
%y
不带世纪的年份:00-99
%Y
带世纪的年份:0001-9999
%H
一天中的24小时制:00-23
%I
一天中的12小时制:01-12
%M
小时中的分钟:00-59
%S
分钟中的秒数:00-59
%f
6位微秒:000000-999999
%z
总是输出“+0000”
%Z
总是输出“UTC”
%j
一年中的第几天:001-366
%u
ISO 工作日,其中星期一为1,星期日为7
%w
星期几,其中星期日为0,星期六为6
%U
以周日为一年的第一天的周数:00-53
%W
一年中的周数,以星期一为第一天:00-53
%V
按ISO-8601格式的年份周数:01-53
%G
基于ISO-8601周的年:0000-9999
%p
来自
timestamp_names::am_str/pm_str的 AM/PM%a
从
names参数中获取的星期几缩写%A
从
names参数中获取的星期几%b
从
names参数中获取的月份名称缩写%B
从
names参数中获取的月份名称额外的描述可以在这里找到:https://en.cppreference.com/w/cpp/chrono/system_clock/formatter
不会检查无效格式或无效时间戳值。所有时间戳值都格式化为UTC。
任何空输入条目将导致输出列中的相应条目为空。
输入列的时间单位不会影响“%f”说明符写入的数字位数。“%f”支持一个精度值来写出亚秒值的数字位数。在“%”和“f”之间使用一个整数值(1-9)来指定精度,如下所示:使用“%3f”表示毫秒,使用“%6f”表示微秒,使用“%9f”表示纳秒。如果精度高于单位,则在亚秒值的右侧填充零。如果精度低于单位,亚秒值可能会被截断。
如果格式中包含“%a”、“%A”、“%b”、“%B”说明符,调用者应按照以下指南在
names字符串列中提供格式名称:["AM", "PM", // specify the AM/PM strings "Sunday", "Monday", ..., "Saturday", // Weekday full names "Sun", "Mon", ..., "Sat", // Weekday abbreviated names "January", "February", ..., "December", // Month full names "Jan", "Feb", ..., "Dec"] // Month abbreviated names
如果未为这些说明符提供格式名称,则结果未定义。
这些格式名称可以通过使用C++
clocale(std)库或Pythonlocale库中的nl_langinfo函数来获取特定区域设置的格式名称。以下代码是一个使用C++标准函数从区域设置中检索这些字符串的示例:
#include <clocale> #include <langinfo.h> // note: install language pack on Ubuntu using 'apt-get install language-pack-de' { // set to a German language locale for date settings std::setlocale(LC_TIME, "de_DE.UTF-8"); std::vector<std::string> names({nl_langinfo(AM_STR), nl_langinfo(PM_STR), nl_langinfo(DAY_1), nl_langinfo(DAY_2), nl_langinfo(DAY_3), nl_langinfo(DAY_4), nl_langinfo(DAY_5), nl_langinfo(DAY_6), nl_langinfo(DAY_7), nl_langinfo(ABDAY_1), nl_langinfo(ABDAY_2), nl_langinfo(ABDAY_3), nl_langinfo(ABDAY_4), nl_langinfo(ABDAY_5), nl_langinfo(ABDAY_6), nl_langinfo(ABDAY_7), nl_langinfo(MON_1), nl_langinfo(MON_2), nl_langinfo(MON_3), nl_langinfo(MON_4), nl_langinfo(MON_5), nl_langinfo(MON_6), nl_langinfo(MON_7), nl_langinfo(MON_8), nl_langinfo(MON_9), nl_langinfo(MON_10), nl_langinfo(MON_11), nl_langinfo(MON_12), nl_langinfo(ABMON_1), nl_langinfo(ABMON_2), nl_langinfo(ABMON_3), nl_langinfo(ABMON_4), nl_langinfo(ABMON_5), nl_langinfo(ABMON_6), nl_langinfo(ABMON_7), nl_langinfo(ABMON_8), nl_langinfo(ABMON_9), nl_langinfo(ABMON_10), nl_langinfo(ABMON_11), nl_langinfo(ABMON_12)}); std::setlocale(LC_TIME,""); // reset to default locale }
- Throws:
cudf::logic_error – 如果
timestamps列参数不是时间戳类型。cudf::logic_error – 如果
format字符串为空cudf::logic_error – 如果
names.size()是无效的大小。必须是 0 或 40 个字符串。
- Parameters:
timestamps – 要转换的时间戳值
format – 指定输出格式的字符串。默认格式为“%Y-%m-%dT%H:%M:%SZ”。
names – 用于星期(“%a”,“%A”)和月份(“%b”,“%B”)的字符串名称。默认是一个空的
strings_column_view。stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
带有格式化时间戳的新字符串列
-
std::unique_ptr<column> to_durations(strings_column_view const &input, data_type duration_type, std::string_view format, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的持续时间列,使用提供的格式模式将字符串列转换为持续时间。
格式模式可以包括以下说明符:“%%,%n,%t,%D,%H,%I,%M,%S,%p,%R,%T,%r,%OH,%OI,%OM,%OS”
指定符
描述
范围
%%
一个字面的 % 字符
%
%n
换行符
\n
%t
一个水平制表符
\t
%D
天数
-2,147,483,648 到 2,147,483,647
%H
一天中的24小时
00 到 23
%I
一天中的12小时制
00 到 11
%M
小时中的分钟
00 到 59
%S
分钟中的秒数
00 到 59.999999999
%OH
与H相同但没有符号
00到23
%OI
与I相同但没有符号
00到11
%OM
与M相同但没有符号
00到59
%OS
与S相同但没有符号
00到59
%p
与12小时制相关的AM/PM标识
‘AM’ 或 ‘PM’
%R
等同于“%H:%M”
%T
等同于“%H:%M:%S”
%r
等同于“%OI:%OM:%OS %p”
目前不支持其他说明符。
无效的格式不会被检查。如果字符串包含意外或不足的字符,则该输出行条目的持续时间值是未定义的。
任何空字符串条目将导致输出列中的相应行为空。
生成的时间单位由
duration_type参数指定。- Throws:
cudf::logic_error – 如果 duration_type 不是持续时间类型。
- Parameters:
input – 此操作的字符串实例
duration_type – 用于创建输出列的持续时间类型
format – 指定持续时间格式的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新的持续时间列
-
std::unique_ptr<column> from_durations(column_view const &durations, std::string_view format = "%D days %H:%M:%S", rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的字符串列,使用提供的格式模式将持续时间列转换为字符串。
格式模式可以包括以下说明符:“%%,%n,%t,%D,%H,%I,%M,%S,%p,%R,%T,%r,%OH,%OI,%OM,%OS”
指定符
描述
范围
%%
一个字面的 % 字符
%
%n
换行符
\n
%t
一个水平制表符
\t
%D
天数
-2,147,483,648 到 2,147,483,647
%H
一天中的24小时
00 到 23
%I
一天中的12小时制
00 到 11
%M
小时中的分钟
00 到 59
%S
分钟中的秒数
00 到 59.999999999
%OH
与H相同但没有符号
00到23
%OI
与I相同但没有符号
00到11
%OM
与M相同但没有符号
00到59
%OS
与S相同但没有符号
00到59
%p
与12小时制相关的AM/PM标识
‘AM’ 或 ‘PM’
%R
等同于“%H:%M”
%T
等同于“%H:%M:%S”
%r
等同于“%OI:%OM:%OS %p”
不会对无效格式或无效持续时间值进行检查。格式化尽可能遵循
std::formatter的规范。任何空输入条目将导致输出列中的相应条目为空。
输入列的时间单位影响秒的小数位数。毫秒使用3位,微秒使用6位,纳秒使用9位。如果持续时间值为负数,输出字符串中只写一个负号。带有符号的说明符是“%H,%I,%M,%S,%R,%T”。
- Throws:
cudf::logic_error – 如果
durations列参数不是持续时间类型。- Parameters:
durations – 要转换的持续时间值
format – 指定输出格式的字符串。默认格式为“D days H:M:S”。
mr – 用于分配返回列的设备内存的设备内存资源
stream – 用于设备内存操作和内核启动的CUDA流
- Returns:
带有格式化持续时间的新字符串列
-
std::unique_ptr<column> to_fixed_point(strings_column_view const &input, data_type output_type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的定点列,从提供的字符串列中解析十进制值。
任何空条目都会导致输出列中的相应空条目。
预期的格式是
[sign][integer][.][fraction],其中符号可能不存在,-或+,小数点[.]可能存在也可能不存在,integer和fraction由零个或多个 [0-9] 中的数字组成。无效的数据格式会导致相应输出行结果的行为未定义。Example: s = ['123', '-876', '543.2', '-0.12'] datatype = {DECIMAL32, scale=-2} fp = to_fixed_point(s, datatype) fp is [123400, -87600, 54320, -12]不检查结果值类型的溢出。
output_type中的比例用于设置整数部分。- Throws:
cudf::logic_error – 如果
output_type不是固定点小数类型。- Parameters:
input – 此操作的字符串实例
output_type – 返回的定点列类型,包括比例值
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新列
output_type
-
std::unique_ptr<column> from_fixed_point(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())#
返回一个新的字符串列,将定点值转换为字符串列。
任何空条目都会导致输出列中的相应空条目。
对于每个值,都会创建一个以10为基数的十进制字符串。负数在输出字符串中包含一个“-”前缀。列的刻度值用于放置小数点。负的刻度值可能会在小数点后添加填充的零。
Example: fp is [110, 222, 3330, -440, -1] with scale = -2 s = from_fixed_point(fp) s is now ['1.10', '2.22', '33.30', '-4.40', '-0.01']
- Throws:
cudf::logic_error – 如果
input列不是固定点小数类型。- Parameters:
input – 要转换的定点列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> is_fixed_point(strings_column_view const &input, data_type decimal_type = data_type{type_id::DECIMAL64}, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个布尔列,用于标识所有字符都可以转换为定点数的字符串。
符号和指数是可选的。小数点只能出现一次。此外,整数部分必须适合底层定点存储类型的大小限制。整数部分的值基于提供的
decimal_type的比例。Example: s = ['123', '-456', '', '1.2.3', '+17E30', '12.34', '.789', '-0.005] b = is_fixed_point(s) b is [true, true, false, false, true, true, true, true]
任何空条目都会导致输出列中的相应空条目。
- Throws:
cudf::logic_error – 如果
decimal_type不是定点小数类型。- Parameters:
input – 此操作的字符串实例
decimal_type – 仅用于检查溢出的定点类型(带比例)
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> to_floats(strings_column_view const &strings, data_type output_type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过解析提供的字符串列中每个字符串的浮点值,返回一个新的数值列。
任何空条目将导致输出列中的相应空条目。
仅识别字符[0-9]加上前缀‘-’和‘+’以及小数点‘.’。此外,还支持科学计数法(例如“-1.78e+5”)。
- Throws:
cudf::logic_error – 如果 output_type 不是浮点类型。
- Parameters:
strings – 此操作的字符串实例
output_type – 返回的浮点数列的类型
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新列,其中浮点数从字符串转换而来
-
std::unique_ptr<column> from_floats(column_view const &floats, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的字符串列,将提供的列中的浮点值转换为字符串。
任何空条目将导致输出列中的相应空条目。
对于每个浮点数,都会以10进制创建一个字符串。负数将包含一个“-”前缀。产生超过10位有效数字的数字将生成包含科学记数法的字符串(例如“-1.78e+15”)。
- Throws:
cudf::logic_error – 如果浮点数列不是浮点类型。
- Parameters:
floats – 要转换的数值列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列,浮点数作为字符串
-
std::unique_ptr<column> is_float(strings_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())#
返回一个布尔列,用于标识所有字符都可以有效转换为浮点数的字符串。
如果相应的字符串元素在 [-+0-9eE.] 中至少有一个字符,则输出行条目将设置为
true。Example: s = ['123', '-456', '', 'A', '+7', '8.9' '3.7e+5'] b = s.is_float(s) b is [true, true, false, false, true, true, true]
任何空行都会导致输出列中该行的条目为空。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> to_integers(strings_column_view const &input, data_type output_type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的整数数值列,从提供的字符串列中解析整数值。
任何空条目将导致输出列中的相应空条目。
仅识别字符[0-9]以及前缀‘-’和‘+’。当遇到任何其他字符时,解析将结束,并将当前数字转换为整数。
不会检查结果整数类型的溢出。每个字符串都使用 int64 类型进行转换,然后在存储到输出列之前将其转换为目标整数类型。如果结果整数类型太小而无法容纳该值,则存储的值将是未定义的。
- Throws:
cudf::logic_error – 如果 output_type 不是整数类型。
- Parameters:
input – 此操作的字符串实例
output_type – 返回的整数数值列的类型
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新列,包含从字符串转换而来的整数
-
std::unique_ptr<column> from_integers(column_view const &integers, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的字符串列,将提供的列中的整数值转换为字符串。
任何空条目将导致输出列中的相应空条目。
对于每个整数,都会创建一个以10为基数的十进制字符串。负数将包含一个‘-’前缀。
- Throws:
cudf::logic_error – 如果整数列不是整数类型。
- Parameters:
integers – 要转换的数值列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列,整数作为字符串
-
std::unique_ptr<column> is_integer(strings_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())#
返回一个布尔列,用于标识所有字符都可以转换为整数的字符串。
如果相应的字符串元素中的所有字符都在[-+0-9]范围内,则输出行条目将设置为
true。可选的符号字符必须仅在第一个位置。请注意,不会检查整数值是否在其存储限制内。对于严格的整数类型检查,请使用另一个is_integer()API,它接受data_type参数。Example: s = ['123', '-456', '', 'A', '+7'] b = s.is_integer(s) b is [true, true, false, false, true]
任何空行都会导致输出列中该行的条目为空。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> is_integer(strings_column_view const &input, data_type int_type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个布尔列,用于标识所有字符都可以转换为整数的字符串。
如果相应的字符串元素中的所有字符都在 [-+0-9] 范围内,则输出行条目将设置为
true。可选的符号字符必须仅出现在第一个位置。此外,整数部分必须适合底层存储类型的大小限制,该限制由 int_type 参数提供。Example: s = ['123456', '-456', '', 'A', '+7'] output1 = s.is_integer(s, data_type{type_id::INT32}) output1 is [true, true, false, false, true] output2 = s.is_integer(s, data_type{type_id::INT8}) output2 is [false, false, false, false, true]任何空行都会导致输出列中该行的条目为空。
- Parameters:
input – 此操作的字符串实例
int_type – 用于检查下溢和溢出的整数类型
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> hex_to_integers(strings_column_view const &input, data_type output_type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
返回一个新的整数数值列,从提供的字符串列中解析十六进制值。
任何空条目将导致输出列中的相应空条目。
仅识别字符[0-9]和[A-F]。当遇到任何其他字符时,该字符串的解析结束。不对整数的符号进行解释。
不会检查结果整数类型的溢出。每个字符串都使用 int64 类型进行转换,然后在存储到输出列之前将其转换为目标整数类型。如果结果整数类型太小而无法容纳该值,则存储的值将是未定义的。
- Throws:
cudf::logic_error – 如果 output_type 不是整数类型。
- Parameters:
input – 此操作的字符串实例
output_type – 返回的整数数值列的类型
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新列,包含从字符串转换而来的整数
-
std::unique_ptr<column> is_hex(strings_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())#
返回一个布尔列,用于标识所有字符都可以从十六进制转换为整数的字符串。
如果相应的字符串元素在[0-9A-Za-z]中至少有一个字符,则输出行条目将设置为
true。此外,字符串可能以'0x'开头。Example: s = ['123', '-456', '', 'AGE', '+17EA', '0x9EF' '123ABC'] b = is_hex(s) b is [true, false, false, false, false, true, true]
任何空行都会导致输出列中该行的条目为空。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> integers_to_hex(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())#
返回一个新的字符串列,将整数列转换为十六进制字符。
任何空条目将导致输出列中的相应空条目。
输出字符集为‘0’-‘9’和‘A’-‘F’。输出字符串的宽度将是2的倍数,取决于整数类型的大小。如果第一个非零输出字节小于0x10,则在其前面添加一个前导零。
Example: input = [1234, -1, 0, 27, 342718233] // int32 type input column s = integers_to_hex(input) s is [ '04D2', 'FFFFFFFF', '00', '1B', '146D7719']
上面的例子展示了一个
INT32类型的列,其中每个整数占4个字节。前导零被抑制,除非填充一个完整的字节,如1234 -> ‘04D2而不是000004D2或4D2`。- Throws:
cudf::logic_error – 如果输入列不是整数类型。
- Parameters:
input – 要转换为十六进制的整数列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
带有十六进制字符的新字符串列
-
std::unique_ptr<column> ipv4_to_integers(strings_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())#
将IPv4地址转换为整数。
IPv4格式是3个点之间的1-3个字符数字[0-9](例如123.45.67.890)。每个部分的值可以在[0-255]之间。
四组数字被转换为整数,并放置在结果整数中的8位字段内。
i0.i1.i2.i3 -> (i0 << 24) | (i1 << 16) | (i2 << 8) | (i3)
不检查格式。如果字符串不是IPv4格式,生成的整数是未定义的。
任何空条目将导致输出列中的相应空条目。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
从字符串转换的新UINT32列
-
std::unique_ptr<column> integers_to_ipv4(column_view const &integers, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将整数转换为字符串形式的IPv4地址。
IPv4格式是3个点之间的1-3个字符数字[0-9](例如123.45.67.890)。每个部分的值可以在[0-255]之间。
每个输入的整数被分解为四个整数,通过将输入分成8位部分。这些子整数随后被转换为[0-9]字符,并放置在‘.’字符之间。
任何空条目将导致输出列中的相应空条目。
- Throws:
cudf::logic_error – 如果输入列不是UINT32类型。
- Parameters:
integers – 要转换的整数(UINT32)列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> is_ipv4(strings_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())#
返回一个布尔列,用于标识所有字符都可以从IPv4格式转换为整数的字符串。
如果相应的字符串元素具有以下格式
xxx.xxx.xxx.xxx,其中xxx是0-255之间的整数,则输出行条目将设置为true。Example: s = ['123.255.0.7', '127.0.0.1', '', '1.2.34' '123.456.789.10'] b = s.is_ipv4(s) b is [true, true, false, false, true]
任何空行都会导致输出列中该行的条目为空。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
每个字符串的布尔结果新列
-
std::unique_ptr<column> format_list_column(lists_column_view const &input, string_scalar const &na_rep = string_scalar(""), strings_column_view const &separators = strings_column_view(column_view{data_type{type_id::STRING}, 0, nullptr, nullptr, 0}), rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将字符串列表列转换为格式化的字符串列。
separators列应包含以下顺序的3个字符串元素:元素分隔符(默认为逗号
,)左侧包围符号(默认为
[)右侧封闭符号(默认为
])
l1 = { [[a,b,c], [d,e]], [[f,g], [h]] } s1 = format_list_column(l1) s1 is now ["[[a,b,c],[d,e]]", "[[f,g],[h]]"] l2 = { [[a,b,c], [d,e]], [NULL], [[f,g], NULL, [h]] } s2 = format_list_column(l1, '-', [':', '{', '}']) s2 is now ["{{a:b:c}:{d:e}}", "{-}", "{{f:g}:-:{h}}"]- Throws:
cudf::logic_error – 如果输入列不是带有STRING子类型的LIST类型。
- Parameters:
input – 要格式化的列列表
na_rep – 用于替换空元素的字符串
separators – 用于包围列表组件和分隔元素的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> url_encode(strings_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())#
使用URL编码对每个字符串进行编码。
将大多数非ASCII字符和控制字符转换为以‘’为前缀的UTF-8十六进制代码点。例如,空格字符必须转换为字符‘%20’,其中‘20’表示UTF-8中空格的十六进制值。同样,多字节字符被转换为多个十六进制字符。例如,é字符被转换为字符‘C3A9’,其中‘C3A9’是该字符的UTF-8字节0xC3A9。
任何空条目将导致输出列中的相应空条目。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> url_decode(strings_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())#
使用URL编码解码每个字符串。
将所有以‘%’开头的字符序列转换为字符代码点,将接下来的2个字符解释为十六进制值以创建代码点。例如,序列‘%20’被转换为字节(0x20),这是一个空格字符。另一个例子将‘C3A9’转换为2个连续的字节(分别为0xc3和0xa9),这是é字符。总的来说,每当在字符串中遇到‘%’(单个百分号)字符时,3个字符被转换为一个字符字节。
任何空条目将导致输出列中的相应空条目。
- Parameters:
input – 此操作的字符串实例
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新字符串列
-
std::unique_ptr<column> to_booleans(strings_column_view const &input, string_scalar const &true_string, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#