polars-runtime-compat 1.34.0b3__cp39-abi3-manylinux_2_24_aarch64.whl → 1.34.0b4__cp39-abi3-manylinux_2_24_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of polars-runtime-compat might be problematic. Click here for more details.
- _polars_runtime_compat/_polars_runtime_compat.abi3.so +0 -0
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/METADATA +1 -1
- polars_runtime_compat-1.34.0b4.dist-info/RECORD +6 -0
- polars/__init__.py +0 -528
- polars/_cpu_check.py +0 -265
- polars/_dependencies.py +0 -355
- polars/_plr.py +0 -99
- polars/_plr.pyi +0 -2496
- polars/_reexport.py +0 -23
- polars/_typing.py +0 -478
- polars/_utils/__init__.py +0 -37
- polars/_utils/async_.py +0 -102
- polars/_utils/cache.py +0 -176
- polars/_utils/cloud.py +0 -40
- polars/_utils/constants.py +0 -29
- polars/_utils/construction/__init__.py +0 -46
- polars/_utils/construction/dataframe.py +0 -1397
- polars/_utils/construction/other.py +0 -72
- polars/_utils/construction/series.py +0 -560
- polars/_utils/construction/utils.py +0 -118
- polars/_utils/convert.py +0 -224
- polars/_utils/deprecation.py +0 -406
- polars/_utils/getitem.py +0 -457
- polars/_utils/logging.py +0 -11
- polars/_utils/nest_asyncio.py +0 -264
- polars/_utils/parquet.py +0 -15
- polars/_utils/parse/__init__.py +0 -12
- polars/_utils/parse/expr.py +0 -242
- polars/_utils/polars_version.py +0 -19
- polars/_utils/pycapsule.py +0 -53
- polars/_utils/scan.py +0 -27
- polars/_utils/serde.py +0 -63
- polars/_utils/slice.py +0 -215
- polars/_utils/udfs.py +0 -1251
- polars/_utils/unstable.py +0 -63
- polars/_utils/various.py +0 -782
- polars/_utils/wrap.py +0 -25
- polars/api.py +0 -370
- polars/catalog/__init__.py +0 -0
- polars/catalog/unity/__init__.py +0 -19
- polars/catalog/unity/client.py +0 -733
- polars/catalog/unity/models.py +0 -152
- polars/config.py +0 -1571
- polars/convert/__init__.py +0 -25
- polars/convert/general.py +0 -1046
- polars/convert/normalize.py +0 -261
- polars/dataframe/__init__.py +0 -5
- polars/dataframe/_html.py +0 -186
- polars/dataframe/frame.py +0 -12582
- polars/dataframe/group_by.py +0 -1067
- polars/dataframe/plotting.py +0 -257
- polars/datatype_expr/__init__.py +0 -5
- polars/datatype_expr/array.py +0 -56
- polars/datatype_expr/datatype_expr.py +0 -304
- polars/datatype_expr/list.py +0 -18
- polars/datatype_expr/struct.py +0 -69
- polars/datatypes/__init__.py +0 -122
- polars/datatypes/_parse.py +0 -195
- polars/datatypes/_utils.py +0 -48
- polars/datatypes/classes.py +0 -1213
- polars/datatypes/constants.py +0 -11
- polars/datatypes/constructor.py +0 -172
- polars/datatypes/convert.py +0 -366
- polars/datatypes/group.py +0 -130
- polars/exceptions.py +0 -230
- polars/expr/__init__.py +0 -7
- polars/expr/array.py +0 -964
- polars/expr/binary.py +0 -346
- polars/expr/categorical.py +0 -306
- polars/expr/datetime.py +0 -2620
- polars/expr/expr.py +0 -11272
- polars/expr/list.py +0 -1408
- polars/expr/meta.py +0 -444
- polars/expr/name.py +0 -321
- polars/expr/string.py +0 -3045
- polars/expr/struct.py +0 -357
- polars/expr/whenthen.py +0 -185
- polars/functions/__init__.py +0 -193
- polars/functions/aggregation/__init__.py +0 -33
- polars/functions/aggregation/horizontal.py +0 -298
- polars/functions/aggregation/vertical.py +0 -341
- polars/functions/as_datatype.py +0 -848
- polars/functions/business.py +0 -138
- polars/functions/col.py +0 -384
- polars/functions/datatype.py +0 -121
- polars/functions/eager.py +0 -524
- polars/functions/escape_regex.py +0 -29
- polars/functions/lazy.py +0 -2751
- polars/functions/len.py +0 -68
- polars/functions/lit.py +0 -210
- polars/functions/random.py +0 -22
- polars/functions/range/__init__.py +0 -19
- polars/functions/range/_utils.py +0 -15
- polars/functions/range/date_range.py +0 -303
- polars/functions/range/datetime_range.py +0 -370
- polars/functions/range/int_range.py +0 -348
- polars/functions/range/linear_space.py +0 -311
- polars/functions/range/time_range.py +0 -287
- polars/functions/repeat.py +0 -301
- polars/functions/whenthen.py +0 -353
- polars/interchange/__init__.py +0 -10
- polars/interchange/buffer.py +0 -77
- polars/interchange/column.py +0 -190
- polars/interchange/dataframe.py +0 -230
- polars/interchange/from_dataframe.py +0 -328
- polars/interchange/protocol.py +0 -303
- polars/interchange/utils.py +0 -170
- polars/io/__init__.py +0 -64
- polars/io/_utils.py +0 -317
- polars/io/avro.py +0 -49
- polars/io/clipboard.py +0 -36
- polars/io/cloud/__init__.py +0 -17
- polars/io/cloud/_utils.py +0 -80
- polars/io/cloud/credential_provider/__init__.py +0 -17
- polars/io/cloud/credential_provider/_builder.py +0 -520
- polars/io/cloud/credential_provider/_providers.py +0 -618
- polars/io/csv/__init__.py +0 -9
- polars/io/csv/_utils.py +0 -38
- polars/io/csv/batched_reader.py +0 -142
- polars/io/csv/functions.py +0 -1495
- polars/io/database/__init__.py +0 -6
- polars/io/database/_arrow_registry.py +0 -70
- polars/io/database/_cursor_proxies.py +0 -147
- polars/io/database/_executor.py +0 -578
- polars/io/database/_inference.py +0 -314
- polars/io/database/_utils.py +0 -144
- polars/io/database/functions.py +0 -516
- polars/io/delta.py +0 -499
- polars/io/iceberg/__init__.py +0 -3
- polars/io/iceberg/_utils.py +0 -697
- polars/io/iceberg/dataset.py +0 -556
- polars/io/iceberg/functions.py +0 -151
- polars/io/ipc/__init__.py +0 -8
- polars/io/ipc/functions.py +0 -514
- polars/io/json/__init__.py +0 -3
- polars/io/json/read.py +0 -101
- polars/io/ndjson.py +0 -332
- polars/io/parquet/__init__.py +0 -17
- polars/io/parquet/field_overwrites.py +0 -140
- polars/io/parquet/functions.py +0 -722
- polars/io/partition.py +0 -491
- polars/io/plugins.py +0 -187
- polars/io/pyarrow_dataset/__init__.py +0 -5
- polars/io/pyarrow_dataset/anonymous_scan.py +0 -109
- polars/io/pyarrow_dataset/functions.py +0 -79
- polars/io/scan_options/__init__.py +0 -5
- polars/io/scan_options/_options.py +0 -59
- polars/io/scan_options/cast_options.py +0 -126
- polars/io/spreadsheet/__init__.py +0 -6
- polars/io/spreadsheet/_utils.py +0 -52
- polars/io/spreadsheet/_write_utils.py +0 -647
- polars/io/spreadsheet/functions.py +0 -1323
- polars/lazyframe/__init__.py +0 -9
- polars/lazyframe/engine_config.py +0 -61
- polars/lazyframe/frame.py +0 -8564
- polars/lazyframe/group_by.py +0 -669
- polars/lazyframe/in_process.py +0 -42
- polars/lazyframe/opt_flags.py +0 -333
- polars/meta/__init__.py +0 -14
- polars/meta/build.py +0 -33
- polars/meta/index_type.py +0 -27
- polars/meta/thread_pool.py +0 -50
- polars/meta/versions.py +0 -120
- polars/ml/__init__.py +0 -0
- polars/ml/torch.py +0 -213
- polars/ml/utilities.py +0 -30
- polars/plugins.py +0 -155
- polars/py.typed +0 -0
- polars/pyproject.toml +0 -103
- polars/schema.py +0 -265
- polars/selectors.py +0 -3117
- polars/series/__init__.py +0 -5
- polars/series/array.py +0 -776
- polars/series/binary.py +0 -254
- polars/series/categorical.py +0 -246
- polars/series/datetime.py +0 -2275
- polars/series/list.py +0 -1087
- polars/series/plotting.py +0 -191
- polars/series/series.py +0 -9197
- polars/series/string.py +0 -2367
- polars/series/struct.py +0 -154
- polars/series/utils.py +0 -191
- polars/sql/__init__.py +0 -7
- polars/sql/context.py +0 -677
- polars/sql/functions.py +0 -139
- polars/string_cache.py +0 -185
- polars/testing/__init__.py +0 -13
- polars/testing/asserts/__init__.py +0 -9
- polars/testing/asserts/frame.py +0 -231
- polars/testing/asserts/series.py +0 -219
- polars/testing/asserts/utils.py +0 -12
- polars/testing/parametric/__init__.py +0 -33
- polars/testing/parametric/profiles.py +0 -107
- polars/testing/parametric/strategies/__init__.py +0 -22
- polars/testing/parametric/strategies/_utils.py +0 -14
- polars/testing/parametric/strategies/core.py +0 -615
- polars/testing/parametric/strategies/data.py +0 -452
- polars/testing/parametric/strategies/dtype.py +0 -436
- polars/testing/parametric/strategies/legacy.py +0 -169
- polars/type_aliases.py +0 -24
- polars_runtime_compat-1.34.0b3.dist-info/RECORD +0 -203
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/WHEEL +0 -0
- {polars_runtime_compat-1.34.0b3.dist-info → polars_runtime_compat-1.34.0b4.dist-info}/licenses/LICENSE +0 -0
polars/functions/__init__.py
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
from polars.functions.aggregation import (
|
|
2
|
-
all,
|
|
3
|
-
all_horizontal,
|
|
4
|
-
any,
|
|
5
|
-
any_horizontal,
|
|
6
|
-
cum_sum,
|
|
7
|
-
cum_sum_horizontal,
|
|
8
|
-
max,
|
|
9
|
-
max_horizontal,
|
|
10
|
-
mean_horizontal,
|
|
11
|
-
min,
|
|
12
|
-
min_horizontal,
|
|
13
|
-
sum,
|
|
14
|
-
sum_horizontal,
|
|
15
|
-
)
|
|
16
|
-
from polars.functions.as_datatype import (
|
|
17
|
-
concat_arr,
|
|
18
|
-
concat_list,
|
|
19
|
-
concat_str,
|
|
20
|
-
duration,
|
|
21
|
-
format,
|
|
22
|
-
struct,
|
|
23
|
-
)
|
|
24
|
-
from polars.functions.as_datatype import date_ as date
|
|
25
|
-
from polars.functions.as_datatype import datetime_ as datetime
|
|
26
|
-
from polars.functions.as_datatype import time_ as time
|
|
27
|
-
from polars.functions.business import business_day_count
|
|
28
|
-
from polars.functions.col import col
|
|
29
|
-
from polars.functions.datatype import dtype_of, self_dtype, struct_with_fields
|
|
30
|
-
from polars.functions.eager import align_frames, concat
|
|
31
|
-
from polars.functions.escape_regex import escape_regex
|
|
32
|
-
from polars.functions.lazy import (
|
|
33
|
-
_row_encode,
|
|
34
|
-
approx_n_unique,
|
|
35
|
-
arctan2,
|
|
36
|
-
arctan2d,
|
|
37
|
-
arg_sort_by,
|
|
38
|
-
arg_where,
|
|
39
|
-
coalesce,
|
|
40
|
-
collect_all,
|
|
41
|
-
collect_all_async,
|
|
42
|
-
corr,
|
|
43
|
-
count,
|
|
44
|
-
cov,
|
|
45
|
-
cum_count,
|
|
46
|
-
cum_fold,
|
|
47
|
-
cum_reduce,
|
|
48
|
-
element,
|
|
49
|
-
exclude,
|
|
50
|
-
explain_all,
|
|
51
|
-
field,
|
|
52
|
-
first,
|
|
53
|
-
fold,
|
|
54
|
-
from_epoch,
|
|
55
|
-
groups,
|
|
56
|
-
head,
|
|
57
|
-
implode,
|
|
58
|
-
last,
|
|
59
|
-
map_batches,
|
|
60
|
-
map_groups,
|
|
61
|
-
mean,
|
|
62
|
-
median,
|
|
63
|
-
n_unique,
|
|
64
|
-
nth,
|
|
65
|
-
quantile,
|
|
66
|
-
reduce,
|
|
67
|
-
rolling_corr,
|
|
68
|
-
rolling_cov,
|
|
69
|
-
row_index,
|
|
70
|
-
select,
|
|
71
|
-
sql_expr,
|
|
72
|
-
std,
|
|
73
|
-
tail,
|
|
74
|
-
var,
|
|
75
|
-
)
|
|
76
|
-
from polars.functions.len import len
|
|
77
|
-
from polars.functions.lit import lit
|
|
78
|
-
from polars.functions.random import set_random_seed
|
|
79
|
-
from polars.functions.range import (
|
|
80
|
-
arange,
|
|
81
|
-
date_range,
|
|
82
|
-
date_ranges,
|
|
83
|
-
datetime_range,
|
|
84
|
-
datetime_ranges,
|
|
85
|
-
int_range,
|
|
86
|
-
int_ranges,
|
|
87
|
-
linear_space,
|
|
88
|
-
linear_spaces,
|
|
89
|
-
time_range,
|
|
90
|
-
time_ranges,
|
|
91
|
-
)
|
|
92
|
-
from polars.functions.repeat import ones, repeat, zeros
|
|
93
|
-
from polars.functions.whenthen import when
|
|
94
|
-
|
|
95
|
-
__all__ = [
|
|
96
|
-
# polars.functions.aggregation
|
|
97
|
-
"all",
|
|
98
|
-
"any",
|
|
99
|
-
"cum_sum",
|
|
100
|
-
"max",
|
|
101
|
-
"min",
|
|
102
|
-
"sum",
|
|
103
|
-
"all_horizontal",
|
|
104
|
-
"any_horizontal",
|
|
105
|
-
"cum_sum_horizontal",
|
|
106
|
-
"max_horizontal",
|
|
107
|
-
"min_horizontal",
|
|
108
|
-
"sum_horizontal",
|
|
109
|
-
# polars.functions.datatype
|
|
110
|
-
"dtype_of",
|
|
111
|
-
"self_dtype",
|
|
112
|
-
"struct_with_fields",
|
|
113
|
-
# polars.functions.eager
|
|
114
|
-
"align_frames",
|
|
115
|
-
"approx_n_unique",
|
|
116
|
-
"arg_where",
|
|
117
|
-
"concat",
|
|
118
|
-
"date_range",
|
|
119
|
-
"date_ranges",
|
|
120
|
-
"datetime_range",
|
|
121
|
-
"datetime_ranges",
|
|
122
|
-
"element",
|
|
123
|
-
"ones",
|
|
124
|
-
"repeat",
|
|
125
|
-
"time_range",
|
|
126
|
-
"time_ranges",
|
|
127
|
-
"zeros",
|
|
128
|
-
# polars.functions.lazy
|
|
129
|
-
"_row_encode",
|
|
130
|
-
"arange",
|
|
131
|
-
"arctan2",
|
|
132
|
-
"arctan2d",
|
|
133
|
-
"arg_sort_by",
|
|
134
|
-
"business_day_count",
|
|
135
|
-
"coalesce",
|
|
136
|
-
"col",
|
|
137
|
-
"collect_all",
|
|
138
|
-
"collect_all_async",
|
|
139
|
-
"concat_arr",
|
|
140
|
-
"concat_list",
|
|
141
|
-
"concat_str",
|
|
142
|
-
"corr",
|
|
143
|
-
"count",
|
|
144
|
-
"cov",
|
|
145
|
-
"cum_count",
|
|
146
|
-
"cum_fold",
|
|
147
|
-
"cum_reduce",
|
|
148
|
-
"date", # named date_, see import above
|
|
149
|
-
"datetime", # named datetime_, see import above
|
|
150
|
-
"duration",
|
|
151
|
-
"exclude",
|
|
152
|
-
"explain_all",
|
|
153
|
-
"field",
|
|
154
|
-
"first",
|
|
155
|
-
"fold",
|
|
156
|
-
"format",
|
|
157
|
-
"from_epoch",
|
|
158
|
-
"groups",
|
|
159
|
-
"head",
|
|
160
|
-
"implode",
|
|
161
|
-
"int_range",
|
|
162
|
-
"int_ranges",
|
|
163
|
-
"last",
|
|
164
|
-
"linear_space",
|
|
165
|
-
"linear_spaces",
|
|
166
|
-
"lit",
|
|
167
|
-
"map_batches",
|
|
168
|
-
"map_groups",
|
|
169
|
-
"mean",
|
|
170
|
-
"mean_horizontal",
|
|
171
|
-
"median",
|
|
172
|
-
"n_unique",
|
|
173
|
-
"nth",
|
|
174
|
-
"quantile",
|
|
175
|
-
"reduce",
|
|
176
|
-
"rolling_corr",
|
|
177
|
-
"rolling_cov",
|
|
178
|
-
"row_index",
|
|
179
|
-
"select",
|
|
180
|
-
"set_random_seed",
|
|
181
|
-
"std",
|
|
182
|
-
"struct",
|
|
183
|
-
"tail",
|
|
184
|
-
"time",
|
|
185
|
-
"var",
|
|
186
|
-
# polars.functions.len
|
|
187
|
-
"len",
|
|
188
|
-
# polars.functions.whenthen
|
|
189
|
-
"when",
|
|
190
|
-
"sql_expr",
|
|
191
|
-
# polars.functions.escape_regex
|
|
192
|
-
"escape_regex",
|
|
193
|
-
]
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from polars.functions.aggregation.horizontal import (
|
|
2
|
-
all_horizontal,
|
|
3
|
-
any_horizontal,
|
|
4
|
-
cum_sum_horizontal,
|
|
5
|
-
max_horizontal,
|
|
6
|
-
mean_horizontal,
|
|
7
|
-
min_horizontal,
|
|
8
|
-
sum_horizontal,
|
|
9
|
-
)
|
|
10
|
-
from polars.functions.aggregation.vertical import (
|
|
11
|
-
all,
|
|
12
|
-
any,
|
|
13
|
-
cum_sum,
|
|
14
|
-
max,
|
|
15
|
-
min,
|
|
16
|
-
sum,
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
__all__ = [
|
|
20
|
-
"all",
|
|
21
|
-
"all_horizontal",
|
|
22
|
-
"any",
|
|
23
|
-
"any_horizontal",
|
|
24
|
-
"cum_sum",
|
|
25
|
-
"cum_sum_horizontal",
|
|
26
|
-
"max",
|
|
27
|
-
"max_horizontal",
|
|
28
|
-
"mean_horizontal",
|
|
29
|
-
"min",
|
|
30
|
-
"min_horizontal",
|
|
31
|
-
"sum",
|
|
32
|
-
"sum_horizontal",
|
|
33
|
-
]
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import contextlib
|
|
4
|
-
from typing import TYPE_CHECKING
|
|
5
|
-
|
|
6
|
-
import polars.functions as F
|
|
7
|
-
from polars._utils.parse import parse_into_list_of_expressions
|
|
8
|
-
from polars._utils.wrap import wrap_expr
|
|
9
|
-
|
|
10
|
-
with contextlib.suppress(ImportError): # Module not available when building docs
|
|
11
|
-
import polars._plr as plr
|
|
12
|
-
|
|
13
|
-
if TYPE_CHECKING:
|
|
14
|
-
from collections.abc import Iterable
|
|
15
|
-
|
|
16
|
-
from polars import Expr
|
|
17
|
-
from polars._typing import IntoExpr
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def all_horizontal(*exprs: IntoExpr | Iterable[IntoExpr]) -> Expr:
|
|
21
|
-
"""
|
|
22
|
-
Compute the bitwise AND horizontally across columns.
|
|
23
|
-
|
|
24
|
-
Parameters
|
|
25
|
-
----------
|
|
26
|
-
*exprs
|
|
27
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
28
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
29
|
-
|
|
30
|
-
Notes
|
|
31
|
-
-----
|
|
32
|
-
`Kleene logic`_ is used to deal with nulls: if the column contains any null values
|
|
33
|
-
and no `False` values, the output is null.
|
|
34
|
-
|
|
35
|
-
.. _Kleene logic: https://en.wikipedia.org/wiki/Three-valued_logic
|
|
36
|
-
|
|
37
|
-
Examples
|
|
38
|
-
--------
|
|
39
|
-
>>> df = pl.DataFrame(
|
|
40
|
-
... {
|
|
41
|
-
... "a": [False, False, True, True, False, None],
|
|
42
|
-
... "b": [False, True, True, None, None, None],
|
|
43
|
-
... "c": ["u", "v", "w", "x", "y", "z"],
|
|
44
|
-
... }
|
|
45
|
-
... )
|
|
46
|
-
>>> df.with_columns(all=pl.all_horizontal("a", "b"))
|
|
47
|
-
shape: (6, 4)
|
|
48
|
-
┌───────┬───────┬─────┬───────┐
|
|
49
|
-
│ a ┆ b ┆ c ┆ all │
|
|
50
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
51
|
-
│ bool ┆ bool ┆ str ┆ bool │
|
|
52
|
-
╞═══════╪═══════╪═════╪═══════╡
|
|
53
|
-
│ false ┆ false ┆ u ┆ false │
|
|
54
|
-
│ false ┆ true ┆ v ┆ false │
|
|
55
|
-
│ true ┆ true ┆ w ┆ true │
|
|
56
|
-
│ true ┆ null ┆ x ┆ null │
|
|
57
|
-
│ false ┆ null ┆ y ┆ false │
|
|
58
|
-
│ null ┆ null ┆ z ┆ null │
|
|
59
|
-
└───────┴───────┴─────┴───────┘
|
|
60
|
-
"""
|
|
61
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
62
|
-
return wrap_expr(plr.all_horizontal(pyexprs))
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
def any_horizontal(*exprs: IntoExpr | Iterable[IntoExpr]) -> Expr:
|
|
66
|
-
"""
|
|
67
|
-
Compute the bitwise OR horizontally across columns.
|
|
68
|
-
|
|
69
|
-
Parameters
|
|
70
|
-
----------
|
|
71
|
-
*exprs
|
|
72
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
73
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
74
|
-
|
|
75
|
-
Notes
|
|
76
|
-
-----
|
|
77
|
-
`Kleene logic`_ is used to deal with nulls: if the column contains any null values
|
|
78
|
-
and no `True` values, the output is null.
|
|
79
|
-
|
|
80
|
-
.. _Kleene logic: https://en.wikipedia.org/wiki/Three-valued_logic
|
|
81
|
-
|
|
82
|
-
Examples
|
|
83
|
-
--------
|
|
84
|
-
>>> df = pl.DataFrame(
|
|
85
|
-
... {
|
|
86
|
-
... "a": [False, False, True, True, False, None],
|
|
87
|
-
... "b": [False, True, True, None, None, None],
|
|
88
|
-
... "c": ["u", "v", "w", "x", "y", "z"],
|
|
89
|
-
... }
|
|
90
|
-
... )
|
|
91
|
-
>>> df.with_columns(any=pl.any_horizontal("a", "b"))
|
|
92
|
-
shape: (6, 4)
|
|
93
|
-
┌───────┬───────┬─────┬───────┐
|
|
94
|
-
│ a ┆ b ┆ c ┆ any │
|
|
95
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
96
|
-
│ bool ┆ bool ┆ str ┆ bool │
|
|
97
|
-
╞═══════╪═══════╪═════╪═══════╡
|
|
98
|
-
│ false ┆ false ┆ u ┆ false │
|
|
99
|
-
│ false ┆ true ┆ v ┆ true │
|
|
100
|
-
│ true ┆ true ┆ w ┆ true │
|
|
101
|
-
│ true ┆ null ┆ x ┆ true │
|
|
102
|
-
│ false ┆ null ┆ y ┆ null │
|
|
103
|
-
│ null ┆ null ┆ z ┆ null │
|
|
104
|
-
└───────┴───────┴─────┴───────┘
|
|
105
|
-
"""
|
|
106
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
107
|
-
return wrap_expr(plr.any_horizontal(pyexprs))
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
def max_horizontal(*exprs: IntoExpr | Iterable[IntoExpr]) -> Expr:
|
|
111
|
-
"""
|
|
112
|
-
Get the maximum value horizontally across columns.
|
|
113
|
-
|
|
114
|
-
Parameters
|
|
115
|
-
----------
|
|
116
|
-
*exprs
|
|
117
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
118
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
119
|
-
|
|
120
|
-
Examples
|
|
121
|
-
--------
|
|
122
|
-
>>> df = pl.DataFrame(
|
|
123
|
-
... {
|
|
124
|
-
... "a": [1, 8, 3],
|
|
125
|
-
... "b": [4, 5, None],
|
|
126
|
-
... "c": ["x", "y", "z"],
|
|
127
|
-
... }
|
|
128
|
-
... )
|
|
129
|
-
>>> df.with_columns(max=pl.max_horizontal("a", "b"))
|
|
130
|
-
shape: (3, 4)
|
|
131
|
-
┌─────┬──────┬─────┬─────┐
|
|
132
|
-
│ a ┆ b ┆ c ┆ max │
|
|
133
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
134
|
-
│ i64 ┆ i64 ┆ str ┆ i64 │
|
|
135
|
-
╞═════╪══════╪═════╪═════╡
|
|
136
|
-
│ 1 ┆ 4 ┆ x ┆ 4 │
|
|
137
|
-
│ 8 ┆ 5 ┆ y ┆ 8 │
|
|
138
|
-
│ 3 ┆ null ┆ z ┆ 3 │
|
|
139
|
-
└─────┴──────┴─────┴─────┘
|
|
140
|
-
"""
|
|
141
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
142
|
-
return wrap_expr(plr.max_horizontal(pyexprs))
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def min_horizontal(*exprs: IntoExpr | Iterable[IntoExpr]) -> Expr:
|
|
146
|
-
"""
|
|
147
|
-
Get the minimum value horizontally across columns.
|
|
148
|
-
|
|
149
|
-
Parameters
|
|
150
|
-
----------
|
|
151
|
-
*exprs
|
|
152
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
153
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
154
|
-
|
|
155
|
-
Examples
|
|
156
|
-
--------
|
|
157
|
-
>>> df = pl.DataFrame(
|
|
158
|
-
... {
|
|
159
|
-
... "a": [1, 8, 3],
|
|
160
|
-
... "b": [4, 5, None],
|
|
161
|
-
... "c": ["x", "y", "z"],
|
|
162
|
-
... }
|
|
163
|
-
... )
|
|
164
|
-
>>> df.with_columns(min=pl.min_horizontal("a", "b"))
|
|
165
|
-
shape: (3, 4)
|
|
166
|
-
┌─────┬──────┬─────┬─────┐
|
|
167
|
-
│ a ┆ b ┆ c ┆ min │
|
|
168
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
169
|
-
│ i64 ┆ i64 ┆ str ┆ i64 │
|
|
170
|
-
╞═════╪══════╪═════╪═════╡
|
|
171
|
-
│ 1 ┆ 4 ┆ x ┆ 1 │
|
|
172
|
-
│ 8 ┆ 5 ┆ y ┆ 5 │
|
|
173
|
-
│ 3 ┆ null ┆ z ┆ 3 │
|
|
174
|
-
└─────┴──────┴─────┴─────┘
|
|
175
|
-
"""
|
|
176
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
177
|
-
return wrap_expr(plr.min_horizontal(pyexprs))
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
def sum_horizontal(
|
|
181
|
-
*exprs: IntoExpr | Iterable[IntoExpr], ignore_nulls: bool = True
|
|
182
|
-
) -> Expr:
|
|
183
|
-
"""
|
|
184
|
-
Sum all values horizontally across columns.
|
|
185
|
-
|
|
186
|
-
Parameters
|
|
187
|
-
----------
|
|
188
|
-
*exprs
|
|
189
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
190
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
191
|
-
ignore_nulls
|
|
192
|
-
Ignore null values (default).
|
|
193
|
-
If set to `False`, any null value in the input will lead to a null output.
|
|
194
|
-
|
|
195
|
-
Examples
|
|
196
|
-
--------
|
|
197
|
-
>>> df = pl.DataFrame(
|
|
198
|
-
... {
|
|
199
|
-
... "a": [1, 8, 3],
|
|
200
|
-
... "b": [4, 5, None],
|
|
201
|
-
... "c": ["x", "y", "z"],
|
|
202
|
-
... }
|
|
203
|
-
... )
|
|
204
|
-
>>> df.with_columns(sum=pl.sum_horizontal("a", "b"))
|
|
205
|
-
shape: (3, 4)
|
|
206
|
-
┌─────┬──────┬─────┬─────┐
|
|
207
|
-
│ a ┆ b ┆ c ┆ sum │
|
|
208
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
209
|
-
│ i64 ┆ i64 ┆ str ┆ i64 │
|
|
210
|
-
╞═════╪══════╪═════╪═════╡
|
|
211
|
-
│ 1 ┆ 4 ┆ x ┆ 5 │
|
|
212
|
-
│ 8 ┆ 5 ┆ y ┆ 13 │
|
|
213
|
-
│ 3 ┆ null ┆ z ┆ 3 │
|
|
214
|
-
└─────┴──────┴─────┴─────┘
|
|
215
|
-
"""
|
|
216
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
217
|
-
return wrap_expr(plr.sum_horizontal(pyexprs, ignore_nulls))
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
def mean_horizontal(
|
|
221
|
-
*exprs: IntoExpr | Iterable[IntoExpr], ignore_nulls: bool = True
|
|
222
|
-
) -> Expr:
|
|
223
|
-
"""
|
|
224
|
-
Compute the mean of all values horizontally across columns.
|
|
225
|
-
|
|
226
|
-
Parameters
|
|
227
|
-
----------
|
|
228
|
-
*exprs
|
|
229
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
230
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
231
|
-
ignore_nulls
|
|
232
|
-
Ignore null values (default).
|
|
233
|
-
If set to `False`, any null value in the input will lead to a null output.
|
|
234
|
-
|
|
235
|
-
Examples
|
|
236
|
-
--------
|
|
237
|
-
>>> df = pl.DataFrame(
|
|
238
|
-
... {
|
|
239
|
-
... "a": [1, 8, 3],
|
|
240
|
-
... "b": [4, 5, None],
|
|
241
|
-
... "c": ["x", "y", "z"],
|
|
242
|
-
... }
|
|
243
|
-
... )
|
|
244
|
-
>>> df.with_columns(mean=pl.mean_horizontal("a", "b"))
|
|
245
|
-
shape: (3, 4)
|
|
246
|
-
┌─────┬──────┬─────┬──────┐
|
|
247
|
-
│ a ┆ b ┆ c ┆ mean │
|
|
248
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
249
|
-
│ i64 ┆ i64 ┆ str ┆ f64 │
|
|
250
|
-
╞═════╪══════╪═════╪══════╡
|
|
251
|
-
│ 1 ┆ 4 ┆ x ┆ 2.5 │
|
|
252
|
-
│ 8 ┆ 5 ┆ y ┆ 6.5 │
|
|
253
|
-
│ 3 ┆ null ┆ z ┆ 3.0 │
|
|
254
|
-
└─────┴──────┴─────┴──────┘
|
|
255
|
-
"""
|
|
256
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
257
|
-
return wrap_expr(plr.mean_horizontal(pyexprs, ignore_nulls))
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
def cum_sum_horizontal(*exprs: IntoExpr | Iterable[IntoExpr]) -> Expr:
|
|
261
|
-
"""
|
|
262
|
-
Cumulatively sum all values horizontally across columns.
|
|
263
|
-
|
|
264
|
-
Parameters
|
|
265
|
-
----------
|
|
266
|
-
*exprs
|
|
267
|
-
Column(s) to use in the aggregation. Accepts expression input. Strings are
|
|
268
|
-
parsed as column names, other non-expression inputs are parsed as literals.
|
|
269
|
-
|
|
270
|
-
Examples
|
|
271
|
-
--------
|
|
272
|
-
>>> df = pl.DataFrame(
|
|
273
|
-
... {
|
|
274
|
-
... "a": [1, 8, 3],
|
|
275
|
-
... "b": [4, 5, None],
|
|
276
|
-
... "c": ["x", "y", "z"],
|
|
277
|
-
... }
|
|
278
|
-
... )
|
|
279
|
-
>>> df.with_columns(pl.cum_sum_horizontal("a", "b"))
|
|
280
|
-
shape: (3, 4)
|
|
281
|
-
┌─────┬──────┬─────┬───────────┐
|
|
282
|
-
│ a ┆ b ┆ c ┆ cum_sum │
|
|
283
|
-
│ --- ┆ --- ┆ --- ┆ --- │
|
|
284
|
-
│ i64 ┆ i64 ┆ str ┆ struct[2] │
|
|
285
|
-
╞═════╪══════╪═════╪═══════════╡
|
|
286
|
-
│ 1 ┆ 4 ┆ x ┆ {1,5} │
|
|
287
|
-
│ 8 ┆ 5 ┆ y ┆ {8,13} │
|
|
288
|
-
│ 3 ┆ null ┆ z ┆ {3,null} │
|
|
289
|
-
└─────┴──────┴─────┴───────────┘
|
|
290
|
-
"""
|
|
291
|
-
pyexprs = parse_into_list_of_expressions(*exprs)
|
|
292
|
-
exprs_wrapped = [wrap_expr(e) for e in pyexprs]
|
|
293
|
-
|
|
294
|
-
return F.cum_fold(
|
|
295
|
-
F.lit(0).cast(F.dtype_of(F.sum_horizontal(list(exprs)))),
|
|
296
|
-
lambda a, b: a + b,
|
|
297
|
-
exprs_wrapped,
|
|
298
|
-
).alias("cum_sum")
|