polars-df 0.5.0-x86_64-linux → 0.6.0-x86_64-linux

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.
@@ -4,6 +4,22 @@ module Polars
4
4
  # @private
5
5
  attr_accessor :_ldf
6
6
 
7
+ # Create a new LazyFrame.
8
+ def initialize(data = nil, schema: nil, schema_overrides: nil, orient: nil, infer_schema_length: 100, nan_to_null: false)
9
+ self._ldf = (
10
+ DataFrame.new(
11
+ data,
12
+ schema: schema,
13
+ schema_overrides: schema_overrides,
14
+ orient: orient,
15
+ infer_schema_length: infer_schema_length,
16
+ nan_to_null: nan_to_null
17
+ )
18
+ .lazy
19
+ ._ldf
20
+ )
21
+ end
22
+
7
23
  # @private
8
24
  def self._from_rbldf(rb_ldf)
9
25
  ldf = LazyFrame.allocate
@@ -379,16 +395,16 @@ module Polars
379
395
  # # │ 2 ┆ 7.0 ┆ b │
380
396
  # # │ 1 ┆ 6.0 ┆ a │
381
397
  # # └─────┴─────┴─────┘
382
- def sort(by, reverse: false, nulls_last: false)
398
+ def sort(by, reverse: false, nulls_last: false, maintain_order: false)
383
399
  if by.is_a?(String)
384
- _from_rbldf(_ldf.sort(by, reverse, nulls_last))
400
+ return _from_rbldf(_ldf.sort(by, reverse, nulls_last, maintain_order))
385
401
  end
386
402
  if Utils.bool?(reverse)
387
403
  reverse = [reverse]
388
404
  end
389
405
 
390
406
  by = Utils.selection_to_rbexpr_list(by)
391
- _from_rbldf(_ldf.sort_by_exprs(by, reverse, nulls_last))
407
+ _from_rbldf(_ldf.sort_by_exprs(by, reverse, nulls_last, maintain_order))
392
408
  end
393
409
 
394
410
  # def profile
@@ -921,6 +937,12 @@ module Polars
921
937
  # Define whether the temporal window interval is closed or not.
922
938
  # @param by [Object]
923
939
  # Also group by this column/these columns.
940
+ # @param check_sorted [Boolean]
941
+ # When the `by` argument is given, polars can not check sortedness
942
+ # by the metadata and has to do a full scan on the index column to
943
+ # verify data is sorted. This is expensive. If you are sure the
944
+ # data within the by groups is sorted, you can set this to `false`.
945
+ # Doing so incorrectly will lead to incorrect output
924
946
  #
925
947
  # @return [LazyFrame]
926
948
  #
@@ -933,8 +955,8 @@ module Polars
933
955
  # "2020-01-03 19:45:32",
934
956
  # "2020-01-08 23:16:43"
935
957
  # ]
936
- # df = Polars::DataFrame.new({"dt" => dates, "a" => [3, 7, 5, 9, 2, 1]}).with_column(
937
- # Polars.col("dt").str.strptime(Polars::Datetime)
958
+ # df = Polars::LazyFrame.new({"dt" => dates, "a" => [3, 7, 5, 9, 2, 1]}).with_column(
959
+ # Polars.col("dt").str.strptime(Polars::Datetime).set_sorted
938
960
  # )
939
961
  # df.groupby_rolling(index_column: "dt", period: "2d").agg(
940
962
  # [
@@ -942,7 +964,7 @@ module Polars
942
964
  # Polars.min("a").alias("min_a"),
943
965
  # Polars.max("a").alias("max_a")
944
966
  # ]
945
- # )
967
+ # ).collect
946
968
  # # =>
947
969
  # # shape: (6, 4)
948
970
  # # ┌─────────────────────┬───────┬───────┬───────┐
@@ -962,7 +984,8 @@ module Polars
962
984
  period:,
963
985
  offset: nil,
964
986
  closed: "right",
965
- by: nil
987
+ by: nil,
988
+ check_sorted: true
966
989
  )
967
990
  index_column = Utils.expr_to_lit_or_expr(index_column, str_to_lit: false)
968
991
  if offset.nil?
@@ -974,7 +997,7 @@ module Polars
974
997
  offset = Utils._timedelta_to_pl_duration(offset)
975
998
 
976
999
  lgb = _ldf.groupby_rolling(
977
- index_column._rbexpr, period, offset, closed, rbexprs_by
1000
+ index_column._rbexpr, period, offset, closed, rbexprs_by, check_sorted
978
1001
  )
979
1002
  LazyGroupBy.new(lgb, self.class)
980
1003
  end
@@ -1112,21 +1135,21 @@ module Polars
1112
1135
  # df.groupby_dynamic("time", every: "1h", closed: "left").agg(
1113
1136
  # [
1114
1137
  # Polars.col("time").count.alias("time_count"),
1115
- # Polars.col("time").list.alias("time_agg_list")
1138
+ # Polars.col("time").alias("time_agg_list")
1116
1139
  # ]
1117
1140
  # )
1118
1141
  # # =>
1119
1142
  # # shape: (4, 3)
1120
- # # ┌─────────────────────┬────────────┬─────────────────────────────────────┐
1121
- # # │ time ┆ time_count ┆ time_agg_list
1122
- # # │ --- ┆ --- ┆ ---
1123
- # # │ datetime[μs] ┆ u32 ┆ list[datetime[μs]]
1124
- # # ╞═════════════════════╪════════════╪═════════════════════════════════════╡
1125
- # # │ 2021-12-16 00:00:00 ┆ 2 ┆ [2021-12-16 00:00:00, 2021-12-16...
1126
- # # │ 2021-12-16 01:00:00 ┆ 2 ┆ [2021-12-16 01:00:00, 2021-12-16...
1127
- # # │ 2021-12-16 02:00:00 ┆ 2 ┆ [2021-12-16 02:00:00, 2021-12-16...
1128
- # # │ 2021-12-16 03:00:00 ┆ 1 ┆ [2021-12-16 03:00:00]
1129
- # # └─────────────────────┴────────────┴─────────────────────────────────────┘
1143
+ # # ┌─────────────────────┬────────────┬───────────────────────────────────┐
1144
+ # # │ time ┆ time_count ┆ time_agg_list
1145
+ # # │ --- ┆ --- ┆ ---
1146
+ # # │ datetime[μs] ┆ u32 ┆ list[datetime[μs]]
1147
+ # # ╞═════════════════════╪════════════╪═══════════════════════════════════╡
1148
+ # # │ 2021-12-16 00:00:00 ┆ 2 ┆ [2021-12-16 00:00:00, 2021-12-16
1149
+ # # │ 2021-12-16 01:00:00 ┆ 2 ┆ [2021-12-16 01:00:00, 2021-12-16
1150
+ # # │ 2021-12-16 02:00:00 ┆ 2 ┆ [2021-12-16 02:00:00, 2021-12-16
1151
+ # # │ 2021-12-16 03:00:00 ┆ 1 ┆ [2021-12-16 03:00:00]
1152
+ # # └─────────────────────┴────────────┴───────────────────────────────────┘
1130
1153
  #
1131
1154
  # @example When closed="both" the time values at the window boundaries belong to 2 groups.
1132
1155
  # df.groupby_dynamic("time", every: "1h", closed: "both").agg(
@@ -1193,7 +1216,7 @@ module Polars
1193
1216
  # period: "3i",
1194
1217
  # include_boundaries: true,
1195
1218
  # closed: "right"
1196
- # ).agg(Polars.col("A").list.alias("A_agg_list"))
1219
+ # ).agg(Polars.col("A").alias("A_agg_list"))
1197
1220
  # # =>
1198
1221
  # # shape: (3, 4)
1199
1222
  # # ┌─────────────────┬─────────────────┬─────┬─────────────────┐
@@ -1216,12 +1239,9 @@ module Polars
1216
1239
  by: nil,
1217
1240
  start_by: "window"
1218
1241
  )
1242
+ index_column = Utils.expr_to_lit_or_expr(index_column, str_to_lit: false)
1219
1243
  if offset.nil?
1220
- if period.nil?
1221
- offset = "-#{every}"
1222
- else
1223
- offset = "0ns"
1224
- end
1244
+ offset = period.nil? ? "-#{every}" : "0ns"
1225
1245
  end
1226
1246
 
1227
1247
  if period.nil?
@@ -1234,7 +1254,7 @@ module Polars
1234
1254
 
1235
1255
  rbexprs_by = by.nil? ? [] : Utils.selection_to_rbexpr_list(by)
1236
1256
  lgb = _ldf.groupby_dynamic(
1237
- index_column,
1257
+ index_column._rbexpr,
1238
1258
  every,
1239
1259
  period,
1240
1260
  offset,
@@ -1351,7 +1371,7 @@ module Polars
1351
1371
  if by.is_a?(String)
1352
1372
  by_left_ = [by]
1353
1373
  by_right_ = [by]
1354
- elsif by.is_a?(Array)
1374
+ elsif by.is_a?(::Array)
1355
1375
  by_left_ = by
1356
1376
  by_right_ = by
1357
1377
  end
@@ -1619,7 +1639,7 @@ module Polars
1619
1639
  # # │ null │
1620
1640
  # # └──────┘
1621
1641
  def with_context(other)
1622
- if !other.is_a?(Array)
1642
+ if !other.is_a?(::Array)
1623
1643
  other = [other]
1624
1644
  end
1625
1645
 
@@ -2228,7 +2248,7 @@ module Polars
2228
2248
  #
2229
2249
  # @return [LazyFrame]
2230
2250
  def unique(maintain_order: true, subset: nil, keep: "first")
2231
- if !subset.nil? && !subset.is_a?(Array)
2251
+ if !subset.nil? && !subset.is_a?(::Array)
2232
2252
  subset = [subset]
2233
2253
  end
2234
2254
  _from_rbldf(_ldf.unique(maintain_order, subset, keep))
@@ -2261,7 +2281,7 @@ module Polars
2261
2281
  # # │ 3 ┆ 8 ┆ c │
2262
2282
  # # └─────┴─────┴─────┘
2263
2283
  def drop_nulls(subset: nil)
2264
- if !subset.nil? && !subset.is_a?(Array)
2284
+ if !subset.nil? && !subset.is_a?(::Array)
2265
2285
  subset = [subset]
2266
2286
  end
2267
2287
  _from_rbldf(_ldf.drop_nulls(subset))
@@ -2423,6 +2443,38 @@ module Polars
2423
2443
  _from_rbldf(_ldf.unnest(names))
2424
2444
  end
2425
2445
 
2446
+ # TODO
2447
+ # def merge_sorted
2448
+ # end
2449
+
2450
+ # Indicate that one or multiple columns are sorted.
2451
+ #
2452
+ # @param column [Object]
2453
+ # Columns that are sorted
2454
+ # @param more_columns [Object]
2455
+ # Additional columns that are sorted, specified as positional arguments.
2456
+ # @param descending [Boolean]
2457
+ # Whether the columns are sorted in descending order.
2458
+ #
2459
+ # @return [LazyFrame]
2460
+ def set_sorted(
2461
+ column,
2462
+ *more_columns,
2463
+ descending: false
2464
+ )
2465
+ columns = Utils.selection_to_rbexpr_list(column)
2466
+ if more_columns.any?
2467
+ columns.concat(Utils.selection_to_rbexpr_list(more_columns))
2468
+ end
2469
+ with_columns(
2470
+ columns.map { |e| Utils.wrap_expr(e).set_sorted(descending: descending) }
2471
+ )
2472
+ end
2473
+
2474
+ # TODO
2475
+ # def update
2476
+ # end
2477
+
2426
2478
  private
2427
2479
 
2428
2480
  def initialize_copy(other)
@@ -14,7 +14,7 @@ module Polars
14
14
 
15
15
  if name.is_a?(DataType)
16
16
  Utils.wrap_expr(_dtype_cols([name]))
17
- elsif name.is_a?(Array)
17
+ elsif name.is_a?(::Array)
18
18
  if name.length == 0 || Utils.strlike?(name[0])
19
19
  name = name.map { |v| v.is_a?(Symbol) ? v.to_s : v }
20
20
  Utils.wrap_expr(RbExpr.cols(name))
@@ -36,7 +36,7 @@ module Polars
36
36
  # @example A horizontal rank computation by taking the elements of a list
37
37
  # df = Polars::DataFrame.new({"a" => [1, 8, 3], "b" => [4, 5, 2]})
38
38
  # df.with_column(
39
- # Polars.concat_list(["a", "b"]).arr.eval(Polars.element.rank).alias("rank")
39
+ # Polars.concat_list(["a", "b"]).list.eval(Polars.element.rank).alias("rank")
40
40
  # )
41
41
  # # =>
42
42
  # # shape: (3, 3)
@@ -156,9 +156,8 @@ module Polars
156
156
  column.sum
157
157
  elsif Utils.strlike?(column)
158
158
  col(column.to_s).sum
159
- elsif column.is_a?(Array)
159
+ elsif column.is_a?(::Array)
160
160
  exprs = Utils.selection_to_rbexpr_list(column)
161
- # TODO
162
161
  Utils.wrap_expr(_sum_exprs(exprs))
163
162
  else
164
163
  fold(lit(0).cast(:u32), ->(a, b) { a + b }, column).alias("sum")
@@ -283,18 +282,33 @@ module Polars
283
282
  # Return an expression representing a literal value.
284
283
  #
285
284
  # @return [Expr]
286
- def lit(value)
287
- if value.is_a?(Polars::Series)
285
+ def lit(value, dtype: nil, allow_object: nil)
286
+ if value.is_a?(::Time) || value.is_a?(::DateTime)
287
+ time_unit = dtype&.time_unit || "ns"
288
+ time_zone = dtype.&time_zone
289
+ e = lit(Utils._datetime_to_pl_timestamp(value, time_unit)).cast(Datetime.new(time_unit))
290
+ if time_zone
291
+ return e.dt.replace_time_zone(time_zone.to_s)
292
+ else
293
+ return e
294
+ end
295
+ elsif value.is_a?(::Date)
296
+ return lit(::Time.utc(value.year, value.month, value.day)).cast(Date)
297
+ elsif value.is_a?(Polars::Series)
288
298
  name = value.name
289
299
  value = value._s
290
- e = Utils.wrap_expr(RbExpr.lit(value))
300
+ e = Utils.wrap_expr(RbExpr.lit(value, allow_object))
291
301
  if name == ""
292
302
  return e
293
303
  end
294
304
  return e.alias(name)
305
+ elsif (defined?(Numo::NArray) && value.is_a?(Numo::NArray)) || value.is_a?(::Array)
306
+ return lit(Series.new("", value))
307
+ elsif dtype
308
+ return Utils.wrap_expr(RbExpr.lit(value, allow_object)).cast(dtype)
295
309
  end
296
310
 
297
- Utils.wrap_expr(RbExpr.lit(value))
311
+ Utils.wrap_expr(RbExpr.lit(value, allow_object))
298
312
  end
299
313
 
300
314
  # Cumulatively sum values in a column/Series, or horizontally across list of columns/expressions.
@@ -625,23 +639,42 @@ module Polars
625
639
  # @return [Expr, Series]
626
640
  #
627
641
  # @example
628
- # df.lazy.filter(Polars.col("foo") < Polars.arange(0, 100)).collect
642
+ # Polars.arange(0, 3, eager: true)
643
+ # # =>
644
+ # # shape: (3,)
645
+ # # Series: 'arange' [i64]
646
+ # # [
647
+ # # 0
648
+ # # 1
649
+ # # 2
650
+ # # ]
651
+ #
652
+ # @example
653
+ # df = Polars::DataFrame.new({"a" => [1, 2], "b" => [3, 4]})
654
+ # df.select(Polars.arange(Polars.col("a"), Polars.col("b")))
655
+ # # =>
656
+ # # shape: (2, 1)
657
+ # # ┌───────────┐
658
+ # # │ arange │
659
+ # # │ --- │
660
+ # # │ list[i64] │
661
+ # # ╞═══════════╡
662
+ # # │ [1, 2] │
663
+ # # │ [2, 3] │
664
+ # # └───────────┘
629
665
  def arange(low, high, step: 1, eager: false, dtype: nil)
630
666
  low = Utils.expr_to_lit_or_expr(low, str_to_lit: false)
631
667
  high = Utils.expr_to_lit_or_expr(high, str_to_lit: false)
632
668
  range_expr = Utils.wrap_expr(RbExpr.arange(low._rbexpr, high._rbexpr, step))
633
669
 
634
- if !dtype.nil? && dtype != "i64"
670
+ if !dtype.nil? && !["i64", Int64].include?(dtype)
635
671
  range_expr = range_expr.cast(dtype)
636
672
  end
637
673
 
638
674
  if !eager
639
675
  range_expr
640
676
  else
641
- DataFrame.new
642
- .select(range_expr)
643
- .to_series
644
- .rename("arange", in_place: true)
677
+ DataFrame.new.select(range_expr.alias("arange")).to_series
645
678
  end
646
679
  end
647
680
 
@@ -658,7 +691,7 @@ module Polars
658
691
  #
659
692
  # @return [Expr]
660
693
  def arg_sort_by(exprs, reverse: false)
661
- if !exprs.is_a?(Array)
694
+ if !exprs.is_a?(::Array)
662
695
  exprs = [exprs]
663
696
  end
664
697
  if reverse == true || reverse == false
@@ -997,19 +1030,24 @@ module Polars
997
1030
  # Only used in `eager` mode. As expression, use `alias`.
998
1031
  #
999
1032
  # @return [Expr]
1000
- def repeat(value, n, eager: false, name: nil)
1033
+ def repeat(value, n, dtype: nil, eager: false, name: nil)
1034
+ if !name.nil?
1035
+ warn "the `name` argument is deprecated. Use the `alias` method instead."
1036
+ end
1037
+
1038
+ if n.is_a?(Integer)
1039
+ n = lit(n)
1040
+ end
1041
+
1042
+ value = Utils.parse_as_expression(value, str_as_lit: true)
1043
+ expr = Utils.wrap_expr(RbExpr.repeat(value, n._rbexpr, dtype))
1044
+ if !name.nil?
1045
+ expr = expr.alias(name)
1046
+ end
1001
1047
  if eager
1002
- if name.nil?
1003
- name = ""
1004
- end
1005
- dtype = py_type_to_dtype(type(value))
1006
- Series._repeat(name, value, n, dtype)
1007
- else
1008
- if n.is_a?(Integer)
1009
- n = lit(n)
1010
- end
1011
- Utils.wrap_expr(RbExpr.repeat(value, n._rbexpr))
1048
+ return select(expr).to_series
1012
1049
  end
1050
+ expr
1013
1051
  end
1014
1052
 
1015
1053
  # Return indices where `condition` evaluates `true`.
@@ -1124,13 +1162,11 @@ module Polars
1124
1162
  end
1125
1163
 
1126
1164
  if unit == "d"
1127
- expr = column.cast(:date)
1165
+ expr = column.cast(Date)
1128
1166
  elsif unit == "s"
1129
- raise Todo
1130
- # expr = (column.cast(:i64) * 1_000_000).cast(Datetime("us"))
1167
+ expr = (column.cast(Int64) * 1_000_000).cast(Datetime.new("us"))
1131
1168
  elsif Utils::DTYPE_TEMPORAL_UNITS.include?(unit)
1132
- raise Todo
1133
- # expr = column.cast(Datetime(unit))
1169
+ expr = column.cast(Datetime.new(unit))
1134
1170
  else
1135
1171
  raise ArgumentError, "'unit' must be one of {{'ns', 'us', 'ms', 's', 'd'}}, got '#{unit}'."
1136
1172
  end
@@ -15,7 +15,7 @@ module Polars
15
15
  #
16
16
  # @example
17
17
  # df = Polars::DataFrame.new({"foo" => [1, 2], "bar" => [["a", "b"], ["c"]]})
18
- # df.select(Polars.col("bar").arr.lengths)
18
+ # df.select(Polars.col("bar").list.lengths)
19
19
  # # =>
20
20
  # # shape: (2, 1)
21
21
  # # ┌─────┐
@@ -36,7 +36,7 @@ module Polars
36
36
  #
37
37
  # @example
38
38
  # df = Polars::DataFrame.new({"values" => [[1], [2, 3]]})
39
- # df.select(Polars.col("values").arr.sum)
39
+ # df.select(Polars.col("values").list.sum)
40
40
  # # =>
41
41
  # # shape: (2, 1)
42
42
  # # ┌────────┐
@@ -57,7 +57,7 @@ module Polars
57
57
  #
58
58
  # @example
59
59
  # df = Polars::DataFrame.new({"values" => [[1], [2, 3]]})
60
- # df.select(Polars.col("values").arr.max)
60
+ # df.select(Polars.col("values").list.max)
61
61
  # # =>
62
62
  # # shape: (2, 1)
63
63
  # # ┌────────┐
@@ -78,7 +78,7 @@ module Polars
78
78
  #
79
79
  # @example
80
80
  # df = Polars::DataFrame.new({"values" => [[1], [2, 3]]})
81
- # df.select(Polars.col("values").arr.min)
81
+ # df.select(Polars.col("values").list.min)
82
82
  # # =>
83
83
  # # shape: (2, 1)
84
84
  # # ┌────────┐
@@ -99,7 +99,7 @@ module Polars
99
99
  #
100
100
  # @example
101
101
  # df = Polars::DataFrame.new({"values" => [[1], [2, 3]]})
102
- # df.select(Polars.col("values").arr.mean)
102
+ # df.select(Polars.col("values").list.mean)
103
103
  # # =>
104
104
  # # shape: (2, 1)
105
105
  # # ┌────────┐
@@ -124,7 +124,7 @@ module Polars
124
124
  # "a" => [[3, 2, 1], [9, 1, 2]]
125
125
  # }
126
126
  # )
127
- # df.select(Polars.col("a").arr.sort)
127
+ # df.select(Polars.col("a").list.sort)
128
128
  # # =>
129
129
  # # shape: (2, 1)
130
130
  # # ┌───────────┐
@@ -149,7 +149,7 @@ module Polars
149
149
  # "a" => [[3, 2, 1], [9, 1, 2]]
150
150
  # }
151
151
  # )
152
- # df.select(Polars.col("a").arr.reverse)
152
+ # df.select(Polars.col("a").list.reverse)
153
153
  # # =>
154
154
  # # shape: (2, 1)
155
155
  # # ┌───────────┐
@@ -174,7 +174,7 @@ module Polars
174
174
  # "a" => [[1, 1, 2]]
175
175
  # }
176
176
  # )
177
- # df.select(Polars.col("a").arr.unique)
177
+ # df.select(Polars.col("a").list.unique)
178
178
  # # =>
179
179
  # # shape: (1, 1)
180
180
  # # ┌───────────┐
@@ -202,7 +202,7 @@ module Polars
202
202
  # "b" => [["b", "c"], ["y", "z"]]
203
203
  # }
204
204
  # )
205
- # df.select(Polars.col("a").arr.concat("b"))
205
+ # df.select(Polars.col("a").list.concat("b"))
206
206
  # # =>
207
207
  # # shape: (2, 1)
208
208
  # # ┌─────────────────┐
@@ -214,11 +214,11 @@ module Polars
214
214
  # # │ ["x", "y", "z"] │
215
215
  # # └─────────────────┘
216
216
  def concat(other)
217
- if other.is_a?(Array) && ![Expr, String, Series].any? { |c| other[0].is_a?(c) }
217
+ if other.is_a?(::Array) && ![Expr, String, Series].any? { |c| other[0].is_a?(c) }
218
218
  return concat(Series.new([other]))
219
219
  end
220
220
 
221
- if !other.is_a?(Array)
221
+ if !other.is_a?(::Array)
222
222
  other_list = [other]
223
223
  else
224
224
  other_list = other.dup
@@ -241,7 +241,7 @@ module Polars
241
241
  #
242
242
  # @example
243
243
  # df = Polars::DataFrame.new({"foo" => [[3, 2, 1], [], [1, 2]]})
244
- # df.select(Polars.col("foo").arr.get(0))
244
+ # df.select(Polars.col("foo").list.get(0))
245
245
  # # =>
246
246
  # # shape: (3, 1)
247
247
  # # ┌──────┐
@@ -254,7 +254,7 @@ module Polars
254
254
  # # │ 1 │
255
255
  # # └──────┘
256
256
  def get(index)
257
- index = Utils.expr_to_lit_or_expr(index, str_to_lit: false)._rbexpr
257
+ index = Utils.parse_as_expression(index)
258
258
  Utils.wrap_expr(_rbexpr.list_get(index))
259
259
  end
260
260
 
@@ -280,7 +280,7 @@ module Polars
280
280
  #
281
281
  # @return [Expr]
282
282
  def take(index, null_on_oob: false)
283
- if index.is_a?(Array)
283
+ if index.is_a?(::Array)
284
284
  index = Series.new(index)
285
285
  end
286
286
  index = Utils.expr_to_lit_or_expr(index, str_to_lit: false)._rbexpr
@@ -293,7 +293,7 @@ module Polars
293
293
  #
294
294
  # @example
295
295
  # df = Polars::DataFrame.new({"foo" => [[3, 2, 1], [], [1, 2]]})
296
- # df.select(Polars.col("foo").arr.first)
296
+ # df.select(Polars.col("foo").list.first)
297
297
  # # =>
298
298
  # # shape: (3, 1)
299
299
  # # ┌──────┐
@@ -315,7 +315,7 @@ module Polars
315
315
  #
316
316
  # @example
317
317
  # df = Polars::DataFrame.new({"foo" => [[3, 2, 1], [], [1, 2]]})
318
- # df.select(Polars.col("foo").arr.last)
318
+ # df.select(Polars.col("foo").list.last)
319
319
  # # =>
320
320
  # # shape: (3, 1)
321
321
  # # ┌──────┐
@@ -340,7 +340,7 @@ module Polars
340
340
  #
341
341
  # @example
342
342
  # df = Polars::DataFrame.new({"foo" => [[3, 2, 1], [], [1, 2]]})
343
- # df.select(Polars.col("foo").arr.contains(1))
343
+ # df.select(Polars.col("foo").list.contains(1))
344
344
  # # =>
345
345
  # # shape: (3, 1)
346
346
  # # ┌───────┐
@@ -367,7 +367,7 @@ module Polars
367
367
  #
368
368
  # @example
369
369
  # df = Polars::DataFrame.new({"s" => [["a", "b", "c"], ["x", "y"]]})
370
- # df.select(Polars.col("s").arr.join(" "))
370
+ # df.select(Polars.col("s").list.join(" "))
371
371
  # # =>
372
372
  # # shape: (2, 1)
373
373
  # # ┌───────┐
@@ -392,7 +392,7 @@ module Polars
392
392
  # "a" => [[1, 2], [2, 1]]
393
393
  # }
394
394
  # )
395
- # df.select(Polars.col("a").arr.arg_min)
395
+ # df.select(Polars.col("a").list.arg_min)
396
396
  # # =>
397
397
  # # shape: (2, 1)
398
398
  # # ┌─────┐
@@ -417,7 +417,7 @@ module Polars
417
417
  # "a" => [[1, 2], [2, 1]]
418
418
  # }
419
419
  # )
420
- # df.select(Polars.col("a").arr.arg_max)
420
+ # df.select(Polars.col("a").list.arg_max)
421
421
  # # =>
422
422
  # # shape: (2, 1)
423
423
  # # ┌─────┐
@@ -443,7 +443,7 @@ module Polars
443
443
  #
444
444
  # @example
445
445
  # s = Polars::Series.new("a", [[1, 2, 3, 4], [10, 2, 1]])
446
- # s.arr.diff
446
+ # s.list.diff
447
447
  # # =>
448
448
  # # shape: (2,)
449
449
  # # Series: 'a' [list[i64]]
@@ -464,7 +464,7 @@ module Polars
464
464
  #
465
465
  # @example
466
466
  # s = Polars::Series.new("a", [[1, 2, 3, 4], [10, 2, 1]])
467
- # s.arr.shift
467
+ # s.list.shift
468
468
  # # =>
469
469
  # # shape: (2,)
470
470
  # # Series: 'a' [list[i64]]
@@ -488,7 +488,7 @@ module Polars
488
488
  #
489
489
  # @example
490
490
  # s = Polars::Series.new("a", [[1, 2, 3, 4], [10, 2, 1]])
491
- # s.arr.slice(1, 2)
491
+ # s.list.slice(1, 2)
492
492
  # # =>
493
493
  # # shape: (2,)
494
494
  # # Series: 'a' [list[i64]]
@@ -511,7 +511,7 @@ module Polars
511
511
  #
512
512
  # @example
513
513
  # s = Polars::Series.new("a", [[1, 2, 3, 4], [10, 2, 1]])
514
- # s.arr.head(2)
514
+ # s.list.head(2)
515
515
  # # =>
516
516
  # # shape: (2,)
517
517
  # # Series: 'a' [list[i64]]
@@ -532,7 +532,7 @@ module Polars
532
532
  #
533
533
  # @example
534
534
  # s = Polars::Series.new("a", [[1, 2, 3, 4], [10, 2, 1]])
535
- # s.arr.tail(2)
535
+ # s.list.tail(2)
536
536
  # # =>
537
537
  # # shape: (2,)
538
538
  # # Series: 'a' [list[i64]]
@@ -554,7 +554,7 @@ module Polars
554
554
  #
555
555
  # @example
556
556
  # df = Polars::DataFrame.new({"listcol" => [[0], [1], [1, 2, 3, 2], [1, 2, 1], [4, 4]]})
557
- # df.select(Polars.col("listcol").arr.count_match(2).alias("number_of_twos"))
557
+ # df.select(Polars.col("listcol").list.count_match(2).alias("number_of_twos"))
558
558
  # # =>
559
559
  # # shape: (5, 1)
560
560
  # # ┌────────────────┐
@@ -584,7 +584,7 @@ module Polars
584
584
  #
585
585
  # @example
586
586
  # df = Polars::DataFrame.new({"a" => [[1, 2, 3], [1, 2]]})
587
- # df.select([Polars.col("a").arr.to_struct])
587
+ # df.select([Polars.col("a").list.to_struct])
588
588
  # # =>
589
589
  # # shape: (2, 1)
590
590
  # # ┌────────────┐
@@ -617,7 +617,7 @@ module Polars
617
617
  # @example
618
618
  # df = Polars::DataFrame.new({"a" => [1, 8, 3], "b" => [4, 5, 2]})
619
619
  # df.with_column(
620
- # Polars.concat_list(["a", "b"]).arr.eval(Polars.element.rank).alias("rank")
620
+ # Polars.concat_list(["a", "b"]).list.eval(Polars.element.rank).alias("rank")
621
621
  # )
622
622
  # # =>
623
623
  # # shape: (3, 3)