Class: Polars::StringExpr
- Inherits:
-
Object
- Object
- Polars::StringExpr
- Defined in:
- lib/polars/string_expr.rb
Overview
Namespace for string related expressions.
Instance Method Summary collapse
-
#contains(pattern, literal: false, strict: true) ⇒ Expr
Check if string contains a substring that matches a regex.
-
#contains_any(patterns, ascii_case_insensitive: false) ⇒ Expr
Use the aho-corasick algorithm to find matches.
-
#count_matches(pattern, literal: false) ⇒ Expr
Count all successive non-overlapping regex matches.
-
#decode(encoding, strict: true) ⇒ Expr
Decode a value using the provided encoding.
-
#encode(encoding) ⇒ Expr
Encode a value using the provided encoding.
-
#ends_with(suffix) ⇒ Expr
Check if string values end with a substring.
-
#escape_regex ⇒ Expr
Returns string values with all regular expression meta characters escaped.
-
#extract(pattern, group_index: 1) ⇒ Expr
Extract the target capture group from provided patterns.
-
#extract_all(pattern) ⇒ Expr
Extracts all matches for the given regex pattern.
-
#extract_groups(pattern) ⇒ Expr
Extract all capture groups for the given regex pattern.
-
#extract_many(patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false) ⇒ Expr
Use the Aho-Corasick algorithm to extract many matches.
-
#find(pattern, literal: false, strict: true) ⇒ Expr
Return the bytes offset of the first substring matching a pattern.
-
#find_many(patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false) ⇒ Expr
Use the Aho-Corasick algorithm to find many matches.
-
#head(n) ⇒ Expr
Return the first n characters of each string in a String Series.
-
#join(delimiter = "", ignore_nulls: true) ⇒ Expr
Vertically concat the values in the Series to a single string value.
-
#json_decode(dtype, infer_schema_length: nil) ⇒ Expr
Parse string values as JSON.
-
#json_path_match(json_path) ⇒ Expr
Extract the first match of json string with provided JSONPath expression.
-
#len_bytes ⇒ Expr
Get length of the strings as
:u32(as number of bytes). -
#len_chars ⇒ Expr
Get length of the strings as
:u32(as number of chars). -
#normalize(form = "NFC") ⇒ Expr
Returns the Unicode normal form of the string values.
-
#pad_end(length, fill_char = " ") ⇒ Expr
Pad the end of the string until it reaches the given length.
-
#pad_start(length, fill_char = " ") ⇒ Expr
Pad the start of the string until it reaches the given length.
-
#replace(pattern, value, literal: false, n: 1) ⇒ Expr
Replace first matching regex/literal substring with a new string value.
-
#replace_all(pattern, value, literal: false) ⇒ Expr
Replace all matching regex/literal substrings with a new string value.
-
#replace_many(patterns, replace_with = NO_DEFAULT, ascii_case_insensitive: false, leftmost: false) ⇒ Expr
Use the aho-corasick algorithm to replace many matches.
-
#reverse ⇒ Expr
Returns string values in reversed order.
-
#slice(offset, length = nil) ⇒ Expr
Create subslices of the string values of a Utf8 Series.
-
#split(by, inclusive: false, literal: true, strict: true) ⇒ Expr
Split the string by a substring.
-
#split_exact(by, n, inclusive: false) ⇒ Expr
Split the string by a substring using
nsplits. -
#splitn(by, n) ⇒ Expr
Split the string by a substring, restricted to returning at most
nitems. -
#starts_with(prefix) ⇒ Expr
Check if string values start with a substring.
-
#strip_chars(characters = nil) ⇒ Expr
Remove leading and trailing whitespace.
-
#strip_chars_end(characters = nil) ⇒ Expr
Remove trailing whitespace.
-
#strip_chars_start(characters = nil) ⇒ Expr
Remove leading whitespace.
-
#strip_prefix(prefix) ⇒ Expr
Remove prefix.
-
#strip_suffix(suffix) ⇒ Expr
Remove suffix.
-
#strptime(dtype, format = nil, strict: true, exact: true, cache: true, ambiguous: "raise") ⇒ Expr
Parse a Utf8 expression to a Date/Datetime/Time type.
-
#tail(n) ⇒ Expr
Return the last n characters of each string in a String Series.
-
#to_date(format = nil, strict: true, exact: true, cache: true) ⇒ Expr
Convert a Utf8 column into a Date column.
-
#to_datetime(format = nil, time_unit: nil, time_zone: nil, strict: true, exact: true, cache: true, ambiguous: "raise") ⇒ Expr
Convert a Utf8 column into a Datetime column.
-
#to_decimal(scale:) ⇒ Expr
Convert a String column into a Decimal column.
-
#to_integer(base: 10, dtype: Int64, strict: true) ⇒ Expr
Convert an Utf8 column into an Int64 column with base radix.
-
#to_lowercase ⇒ Expr
Transform to lowercase variant.
-
#to_time(format = nil, strict: true, cache: true) ⇒ Expr
Convert a Utf8 column into a Time column.
-
#to_titlecase ⇒ Expr
Transform to titlecase variant.
-
#to_uppercase ⇒ Expr
Transform to uppercase variant.
-
#zfill(length) ⇒ Expr
Fills the string with zeroes.
Instance Method Details
#contains(pattern, literal: false, strict: true) ⇒ Expr
Check if string contains a substring that matches a regex.
779 780 781 782 |
# File 'lib/polars/string_expr.rb', line 779 def contains(pattern, literal: false, strict: true) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_contains(pattern, literal, strict)) end |
#contains_any(patterns, ascii_case_insensitive: false) ⇒ Expr
Use the aho-corasick algorithm to find matches.
This version determines if any of the patterns find a match.
1668 1669 1670 1671 1672 1673 |
# File 'lib/polars/string_expr.rb', line 1668 def contains_any(patterns, ascii_case_insensitive: false) patterns = Utils.parse_into_expression(patterns, str_as_lit: false) Utils.wrap_expr( _rbexpr.str_contains_any(patterns, ascii_case_insensitive) ) end |
#count_matches(pattern, literal: false) ⇒ Expr
Count all successive non-overlapping regex matches.
1214 1215 1216 1217 |
# File 'lib/polars/string_expr.rb', line 1214 def count_matches(pattern, literal: false) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_count_matches(pattern, literal)) end |
#decode(encoding, strict: true) ⇒ Expr
Decode a value using the provided encoding.
1026 1027 1028 1029 1030 1031 1032 1033 1034 |
# File 'lib/polars/string_expr.rb', line 1026 def decode(encoding, strict: true) if encoding == "hex" Utils.wrap_expr(_rbexpr.str_hex_decode(strict)) elsif encoding == "base64" Utils.wrap_expr(_rbexpr.str_base64_decode(strict)) else raise ArgumentError, "encoding must be one of {{'hex', 'base64'}}, got #{encoding}" end end |
#encode(encoding) ⇒ Expr
Encode a value using the provided encoding.
1057 1058 1059 1060 1061 1062 1063 1064 1065 |
# File 'lib/polars/string_expr.rb', line 1057 def encode(encoding) if encoding == "hex" Utils.wrap_expr(_rbexpr.str_hex_encode) elsif encoding == "base64" Utils.wrap_expr(_rbexpr.str_base64_encode) else raise ArgumentError, "encoding must be one of {{'hex', 'base64'}}, got #{encoding}" end end |
#ends_with(suffix) ⇒ Expr
Check if string values end with a substring.
881 882 883 884 |
# File 'lib/polars/string_expr.rb', line 881 def ends_with(suffix) suffix_rbexpr = Utils.parse_into_expression(suffix, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_ends_with(suffix_rbexpr)) end |
#escape_regex ⇒ Expr
Returns string values with all regular expression meta characters escaped.
404 405 406 |
# File 'lib/polars/string_expr.rb', line 404 def escape_regex Utils.wrap_expr(_rbexpr.str_escape_regex) end |
#extract(pattern, group_index: 1) ⇒ Expr
Extract the target capture group from provided patterns.
1095 1096 1097 1098 |
# File 'lib/polars/string_expr.rb', line 1095 def extract(pattern, group_index: 1) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_extract(pattern, group_index)) end |
#extract_all(pattern) ⇒ Expr
Extracts all matches for the given regex pattern.
Extracts each successive non-overlapping regex match in an individual string as an array.
1127 1128 1129 1130 |
# File 'lib/polars/string_expr.rb', line 1127 def extract_all(pattern) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_extract_all(pattern)) end |
#extract_groups(pattern) ⇒ Expr
Extract all capture groups for the given regex pattern.
1184 1185 1186 |
# File 'lib/polars/string_expr.rb', line 1184 def extract_groups(pattern) Utils.wrap_expr(_rbexpr.str_extract_groups(pattern)) end |
#extract_many(patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false) ⇒ Expr
This method supports matching on string literals only, and does not support regular expression matching.
Use the Aho-Corasick algorithm to extract many matches.
1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 |
# File 'lib/polars/string_expr.rb', line 1835 def extract_many( patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false ) if overlapping && leftmost msg = "can not match overlapping patterns when leftmost == true" raise ArgumentError, msg end patterns = Utils.parse_into_expression(patterns, str_as_lit: false) Utils.wrap_expr( _rbexpr.str_extract_many(patterns, ascii_case_insensitive, overlapping, leftmost) ) end |
#find(pattern, literal: false, strict: true) ⇒ Expr
To modify regular expression behaviour (such as case-sensitivity) with
flags, use the inline (?iLmsuxU) syntax.
Return the bytes offset of the first substring matching a pattern.
If the pattern is not found, returns nil.
841 842 843 844 |
# File 'lib/polars/string_expr.rb', line 841 def find(pattern, literal: false, strict: true) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_find(pattern, literal, strict)) end |
#find_many(patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false) ⇒ Expr
This method supports matching on string literals only, and does not support regular expression matching.
Use the Aho-Corasick algorithm to find many matches.
The function will return the bytes offset of the start of each match.
The return type will be List<UInt32>
1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 |
# File 'lib/polars/string_expr.rb', line 1918 def find_many( patterns, ascii_case_insensitive: false, overlapping: false, leftmost: false ) if overlapping && leftmost msg = "can not match overlapping patterns when leftmost == true" raise ArgumentError, msg end patterns = Utils.parse_into_expression(patterns, str_as_lit: false) Utils.wrap_expr( _rbexpr.str_find_many(patterns, ascii_case_insensitive, overlapping, leftmost) ) end |
#head(n) ⇒ Expr
1) The n input is defined in terms of the number of characters in the (UTF8)
string. A character is defined as a Unicode scalar value. A single
character is represented by a single byte when working with ASCII text, and a
maximum of 4 bytes otherwise.
2) When the n input is negative, head returns characters up to the nth
from the end of the string. For example, if n = -3, then all characters
except the last three are returned.
3) If the length of the string has fewer than n characters, the full string is
returned.
Return the first n characters of each string in a String Series.
1517 1518 1519 1520 |
# File 'lib/polars/string_expr.rb', line 1517 def head(n) n = Utils.parse_into_expression(n) Utils.wrap_expr(_rbexpr.str_head(n)) end |
#join(delimiter = "", ignore_nulls: true) ⇒ Expr
Vertically concat the values in the Series to a single string value.
381 382 383 |
# File 'lib/polars/string_expr.rb', line 381 def join(delimiter = "", ignore_nulls: true) Utils.wrap_expr(_rbexpr.str_join(delimiter, ignore_nulls)) end |
#json_decode(dtype, infer_schema_length: nil) ⇒ Expr
Parse string values as JSON.
Throw errors if encounter invalid JSON strings.
954 955 956 957 958 959 960 961 962 |
# File 'lib/polars/string_expr.rb', line 954 def json_decode(dtype, infer_schema_length: nil) if dtype.nil? msg = "`Expr.str.json_decode` needs an explicitly given `dtype` otherwise Polars is not able to determine the output type. If you want to eagerly infer datatype you can use `Series.str.json_decode`." raise TypeError, msg end dtype_expr = Utils.parse_into_datatype_expr(dtype)._rbdatatype_expr Utils.wrap_expr(_rbexpr.str_json_decode(dtype_expr)) end |
#json_path_match(json_path) ⇒ Expr
Extract the first match of json string with provided JSONPath expression.
Throw errors if encounter invalid json strings. All return value will be casted to Utf8 regardless of the original value.
Documentation on JSONPath standard can be found here.
995 996 997 998 |
# File 'lib/polars/string_expr.rb', line 995 def json_path_match(json_path) json_path = Utils.parse_into_expression(json_path, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_json_path_match(json_path)) end |
#len_bytes ⇒ Expr
The returned lengths are equal to the number of bytes in the UTF8 string. If you
need the length in terms of the number of characters, use n_chars instead.
Get length of the strings as :u32 (as number of bytes).
311 312 313 |
# File 'lib/polars/string_expr.rb', line 311 def len_bytes Utils.wrap_expr(_rbexpr.str_len_bytes) end |
#len_chars ⇒ Expr
If you know that you are working with ASCII text, lengths will be
equivalent, and faster (returns length in terms of the number of bytes).
Get length of the strings as :u32 (as number of chars).
343 344 345 |
# File 'lib/polars/string_expr.rb', line 343 def len_chars Utils.wrap_expr(_rbexpr.str_len_chars) end |
#normalize(form = "NFC") ⇒ Expr
Returns the Unicode normal form of the string values.
This uses the forms described in Unicode Standard Annex 15: https://www.unicode.org/reports/tr15/.
446 447 448 |
# File 'lib/polars/string_expr.rb', line 446 def normalize(form = "NFC") Utils.wrap_expr(_rbexpr.str_normalize(form)) end |
#pad_end(length, fill_char = " ") ⇒ Expr
Pad the end of the string until it reaches the given length.
707 708 709 710 |
# File 'lib/polars/string_expr.rb', line 707 def pad_end(length, fill_char = " ") length = Utils.parse_into_expression(length) Utils.wrap_expr(_rbexpr.str_pad_end(length, fill_char)) end |
#pad_start(length, fill_char = " ") ⇒ Expr
Pad the start of the string until it reaches the given length.
677 678 679 680 |
# File 'lib/polars/string_expr.rb', line 677 def pad_start(length, fill_char = " ") length = Utils.parse_into_expression(length) Utils.wrap_expr(_rbexpr.str_pad_start(length, fill_char)) end |
#replace(pattern, value, literal: false, n: 1) ⇒ Expr
Replace first matching regex/literal substring with a new string value.
1369 1370 1371 1372 1373 |
# File 'lib/polars/string_expr.rb', line 1369 def replace(pattern, value, literal: false, n: 1) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) value = Utils.parse_into_expression(value, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_replace_n(pattern, value, literal, n)) end |
#replace_all(pattern, value, literal: false) ⇒ Expr
Replace all matching regex/literal substrings with a new string value.
1399 1400 1401 1402 1403 |
# File 'lib/polars/string_expr.rb', line 1399 def replace_all(pattern, value, literal: false) pattern = Utils.parse_into_expression(pattern, str_as_lit: true) value = Utils.parse_into_expression(value, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_replace_all(pattern, value, literal)) end |
#replace_many(patterns, replace_with = NO_DEFAULT, ascii_case_insensitive: false, leftmost: false) ⇒ Expr
Use the aho-corasick algorithm to replace many matches.
1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 |
# File 'lib/polars/string_expr.rb', line 1743 def replace_many( patterns, replace_with = NO_DEFAULT, ascii_case_insensitive: false, leftmost: false ) if replace_with == NO_DEFAULT if !patterns.is_a?(Hash) msg = "`replace_with` argument is required if `patterns` argument is not a Hash type" raise TypeError, msg end # Early return in case of an empty mapping. if patterns.empty? return Utils.wrap_expr(_rbexpr) end replace_with = patterns.values patterns = patterns.keys end patterns = Utils.parse_into_expression(patterns, str_as_lit: false) replace_with = Utils.parse_into_expression(replace_with, str_as_lit: true) Utils.wrap_expr( _rbexpr.str_replace_many( patterns, replace_with, ascii_case_insensitive, leftmost ) ) end |
#reverse ⇒ Expr
Returns string values in reversed order.
1423 1424 1425 |
# File 'lib/polars/string_expr.rb', line 1423 def reverse Utils.wrap_expr(_rbexpr.str_reverse) end |
#slice(offset, length = nil) ⇒ Expr
Create subslices of the string values of a Utf8 Series.
1454 1455 1456 1457 1458 |
# File 'lib/polars/string_expr.rb', line 1454 def slice(offset, length = nil) offset = Utils.parse_into_expression(offset) length = Utils.parse_into_expression(length) Utils.wrap_expr(_rbexpr.str_slice(offset, length)) end |
#split(by, inclusive: false, literal: true, strict: true) ⇒ Expr
Split the string by a substring.
1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 |
# File 'lib/polars/string_expr.rb', line 1247 def split(by, inclusive: false, literal: true, strict: true) by_rbexpr = Utils.parse_into_expression(by, str_as_lit: true) if !literal if inclusive return Utils.wrap_expr( _rbexpr.str_split_regex_inclusive(by_rbexpr, strict) ) end return Utils.wrap_expr(_rbexpr.str_split_regex(by_rbexpr, strict)) end if inclusive return Utils.wrap_expr(_rbexpr.str_split_inclusive(by_rbexpr)) end Utils.wrap_expr(_rbexpr.str_split(by_rbexpr)) end |
#split_exact(by, n, inclusive: false) ⇒ Expr
Split the string by a substring using n splits.
Results in a struct of n+1 fields.
If it cannot make n splits, the remaining field elements will be null.
1299 1300 1301 1302 1303 1304 1305 1306 |
# File 'lib/polars/string_expr.rb', line 1299 def split_exact(by, n, inclusive: false) by = Utils.parse_into_expression(by, str_as_lit: true) if inclusive Utils.wrap_expr(_rbexpr.str_split_exact_inclusive(by, n)) else Utils.wrap_expr(_rbexpr.str_split_exact(by, n)) end end |
#splitn(by, n) ⇒ Expr
Split the string by a substring, restricted to returning at most n items.
If the number of possible splits is less than n-1, the remaining field
elements will be null. If the number of possible splits is n-1 or greater,
the last (nth) substring will contain the remainder of the string.
1336 1337 1338 1339 |
# File 'lib/polars/string_expr.rb', line 1336 def splitn(by, n) by = Utils.parse_into_expression(by, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_splitn(by, n)) end |
#starts_with(prefix) ⇒ Expr
Check if string values start with a substring.
921 922 923 924 |
# File 'lib/polars/string_expr.rb', line 921 def starts_with(prefix) prefix_rbexpr = Utils.parse_into_expression(prefix, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_starts_with(prefix_rbexpr)) end |
#strip_chars(characters = nil) ⇒ Expr
Remove leading and trailing whitespace.
536 537 538 539 |
# File 'lib/polars/string_expr.rb', line 536 def strip_chars(characters = nil) characters = Utils.parse_into_expression(characters, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_strip_chars(characters)) end |
#strip_chars_end(characters = nil) ⇒ Expr
Remove trailing whitespace.
588 589 590 591 |
# File 'lib/polars/string_expr.rb', line 588 def strip_chars_end(characters = nil) characters = Utils.parse_into_expression(characters, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_strip_chars_end(characters)) end |
#strip_chars_start(characters = nil) ⇒ Expr
Remove leading whitespace.
562 563 564 565 |
# File 'lib/polars/string_expr.rb', line 562 def strip_chars_start(characters = nil) characters = Utils.parse_into_expression(characters, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_strip_chars_start(characters)) end |
#strip_prefix(prefix) ⇒ Expr
Remove prefix.
The prefix will be removed from the string exactly once, if found.
617 618 619 620 |
# File 'lib/polars/string_expr.rb', line 617 def strip_prefix(prefix) prefix = Utils.parse_into_expression(prefix, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_strip_prefix(prefix)) end |
#strip_suffix(suffix) ⇒ Expr
Remove suffix.
The suffix will be removed from the string exactly once, if found.
647 648 649 650 |
# File 'lib/polars/string_expr.rb', line 647 def strip_suffix(suffix) suffix = Utils.parse_into_expression(suffix, str_as_lit: true) Utils.wrap_expr(_rbexpr.str_strip_suffix(suffix)) end |
#strptime(dtype, format = nil, strict: true, exact: true, cache: true, ambiguous: "raise") ⇒ Expr
When parsing a Datetime the column precision will be inferred from the format string, if given, eg: "%F %T%.3f" => Datetime("ms"). If no fractional second component is found then the default is "us".
Parse a Utf8 expression to a Date/Datetime/Time type.
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/polars/string_expr.rb', line 210 def strptime( dtype, format = nil, strict: true, exact: true, cache: true, ambiguous: "raise" ) _validate_format_argument(format) if dtype == Date to_date(format, strict: strict, exact: exact, cache: cache) elsif dtype == Datetime || dtype.is_a?(Datetime) dtype = Datetime.new if dtype == Datetime time_unit = dtype.time_unit time_zone = dtype.time_zone to_datetime( format, time_unit: time_unit, time_zone: time_zone, strict: strict, exact: exact, cache: cache, ambiguous: ambiguous ) elsif dtype == Time to_time(format, strict: strict, cache: cache) else raise ArgumentError, "dtype should be of type {Date, Datetime, Time}" end end |
#tail(n) ⇒ Expr
1) The n input is defined in terms of the number of characters in the (UTF8)
string. A character is defined as a Unicode scalar value. A single
character is represented by a single byte when working with ASCII text, and a
maximum of 4 bytes otherwise.
2) When the n input is negative, tail returns characters starting from the
nth from the beginning of the string. For example, if n = -3, then all
characters except the first three are returned.
3) If the length of the string has fewer than n characters, the full string is
returned.
Return the last n characters of each string in a String Series.
1579 1580 1581 1582 |
# File 'lib/polars/string_expr.rb', line 1579 def tail(n) n = Utils.parse_into_expression(n) Utils.wrap_expr(_rbexpr.str_tail(n)) end |
#to_date(format = nil, strict: true, exact: true, cache: true) ⇒ Expr
Convert a Utf8 column into a Date column.
40 41 42 43 |
# File 'lib/polars/string_expr.rb', line 40 def to_date(format = nil, strict: true, exact: true, cache: true) _validate_format_argument(format) Utils.wrap_expr(_rbexpr.str_to_date(format, strict, exact, cache)) end |
#to_datetime(format = nil, time_unit: nil, time_zone: nil, strict: true, exact: true, cache: true, ambiguous: "raise") ⇒ Expr
Convert a Utf8 column into a Datetime column.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/polars/string_expr.rb', line 86 def to_datetime( format = nil, time_unit: nil, time_zone: nil, strict: true, exact: true, cache: true, ambiguous: "raise" ) _validate_format_argument(format) unless ambiguous.is_a?(Expr) ambiguous = Polars.lit(ambiguous) end Utils.wrap_expr( _rbexpr.str_to_datetime( format, time_unit, time_zone, strict, exact, cache, ambiguous._rbexpr ) ) end |
#to_decimal(scale:) ⇒ Expr
Convert a String column into a Decimal column.
279 280 281 |
# File 'lib/polars/string_expr.rb', line 279 def to_decimal(scale:) Utils.wrap_expr(_rbexpr.str_to_decimal(scale)) end |
#to_integer(base: 10, dtype: Int64, strict: true) ⇒ Expr
Convert an Utf8 column into an Int64 column with base radix.
1626 1627 1628 1629 |
# File 'lib/polars/string_expr.rb', line 1626 def to_integer(base: 10, dtype: Int64, strict: true) base = Utils.parse_into_expression(base, str_as_lit: false) Utils.wrap_expr(_rbexpr.str_to_integer(base, dtype, strict)) end |
#to_lowercase ⇒ Expr
Transform to lowercase variant.
488 489 490 |
# File 'lib/polars/string_expr.rb', line 488 def to_lowercase Utils.wrap_expr(_rbexpr.str_to_lowercase) end |
#to_time(format = nil, strict: true, cache: true) ⇒ Expr
Convert a Utf8 column into a Time column.
137 138 139 140 |
# File 'lib/polars/string_expr.rb', line 137 def to_time(format = nil, strict: true, cache: true) _validate_format_argument(format) Utils.wrap_expr(_rbexpr.str_to_time(format, strict, cache)) end |
#to_titlecase ⇒ Expr
Transform to titlecase variant.
511 512 513 |
# File 'lib/polars/string_expr.rb', line 511 def to_titlecase Utils.wrap_expr(_rbexpr.str_to_titlecase) end |
#to_uppercase ⇒ Expr
Transform to uppercase variant.
467 468 469 |
# File 'lib/polars/string_expr.rb', line 467 def to_uppercase Utils.wrap_expr(_rbexpr.str_to_uppercase) end |
#zfill(length) ⇒ Expr
Fills the string with zeroes.
Return a copy of the string left filled with ASCII '0' digits to make a string of length width.
A leading sign prefix ('+'/'-') is handled by inserting the padding after the
sign character rather than before. The original string is returned if width is
less than or equal to s.length.
741 742 743 744 |
# File 'lib/polars/string_expr.rb', line 741 def zfill(length) length = Utils.parse_into_expression(length) Utils.wrap_expr(_rbexpr.str_zfill(length)) end |