polars-df 0.1.0 → 0.1.1

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.
@@ -8,6 +8,51 @@ module Polars
8
8
  ldf
9
9
  end
10
10
 
11
+ # def columns
12
+ # end
13
+
14
+ # def dtypes
15
+ # end
16
+
17
+ # def schema
18
+ # end
19
+
20
+ # def width
21
+ # end
22
+
23
+ # def include?(key)
24
+ # end
25
+
26
+ # clone handled by initialize_copy
27
+
28
+ # def [](item)
29
+ # end
30
+
31
+ # def to_s
32
+ # end
33
+ # alias_method :inspect, :to_s
34
+
35
+ # def write_json
36
+ # end
37
+
38
+ # def pipe
39
+ # end
40
+
41
+ # def describe_plan
42
+ # end
43
+
44
+ # def describe_optimized_plan
45
+ # end
46
+
47
+ # def show_graph
48
+ # end
49
+
50
+ # def sort
51
+ # end
52
+
53
+ # def profile
54
+ # end
55
+
11
56
  def collect(
12
57
  type_coercion: true,
13
58
  predicate_pushdown: true,
@@ -42,8 +87,21 @@ module Polars
42
87
  Utils.wrap_df(ldf.collect)
43
88
  end
44
89
 
90
+ # def fetch
91
+ # end
92
+
93
+ def lazy
94
+ self
95
+ end
96
+
97
+ # def cache
98
+ # end
99
+
100
+ # def cleared
101
+ # end
102
+
45
103
  def filter(predicate)
46
- self.class._from_rbldf(
104
+ _from_rbldf(
47
105
  _ldf.filter(
48
106
  Utils.expr_to_lit_or_expr(predicate, str_to_lit: false)._rbexpr
49
107
  )
@@ -52,7 +110,7 @@ module Polars
52
110
 
53
111
  def select(exprs)
54
112
  exprs = Utils.selection_to_rbexpr_list(exprs)
55
- self.class._from_rbldf(_ldf.select(exprs))
113
+ _from_rbldf(_ldf.select(exprs))
56
114
  end
57
115
 
58
116
  def groupby(by, maintain_order: false)
@@ -61,6 +119,15 @@ module Polars
61
119
  LazyGroupBy.new(lgb, self.class)
62
120
  end
63
121
 
122
+ # def groupby_rolling
123
+ # end
124
+
125
+ # def groupby_dynamic
126
+ # end
127
+
128
+ # def join_asof
129
+ # end
130
+
64
131
  def join(
65
132
  other,
66
133
  left_on: nil,
@@ -76,7 +143,7 @@ module Polars
76
143
  end
77
144
 
78
145
  if how == "cross"
79
- return self.class._from_rbldf(
146
+ return _from_rbldf(
80
147
  _ldf.join(
81
148
  other._ldf, [], [], allow_parallel, force_parallel, how, suffix
82
149
  )
@@ -94,7 +161,7 @@ module Polars
94
161
  raise ArgumentError, "must specify `on` OR `left_on` and `right_on`"
95
162
  end
96
163
 
97
- self.class._from_rbldf(
164
+ _from_rbldf(
98
165
  self._ldf.join(
99
166
  other._ldf,
100
167
  rbexprs_left,
@@ -123,17 +190,128 @@ module Polars
123
190
  when Expr
124
191
  rbexprs << e._rbexpr
125
192
  when Series
126
- rbexprs = Internal.lit(e)._rbexpr
193
+ rbexprs = Utils.lit(e)._rbexpr
127
194
  else
128
195
  raise ArgumentError, "Expected an expression, got #{e}"
129
196
  end
130
197
  end
131
198
 
132
- self.class._from_rbldf(_ldf.with_columns(rbexprs))
199
+ _from_rbldf(_ldf.with_columns(rbexprs))
133
200
  end
134
201
 
202
+ # def with_context
203
+ # end
204
+
135
205
  def with_column(column)
136
206
  with_columns([column])
137
207
  end
208
+
209
+ # def drop
210
+ # end
211
+
212
+ def rename(mapping)
213
+ existing = mapping.keys
214
+ _new = mapping.values
215
+ _from_rbldf(_ldf.rename(existing, _new))
216
+ end
217
+
218
+ # def reverse
219
+ # end
220
+
221
+ # def shift
222
+ # end
223
+
224
+ # def shift_and_fill
225
+ # end
226
+
227
+ # def slice
228
+ # end
229
+
230
+ # def limit
231
+ # end
232
+
233
+ # def head
234
+ # end
235
+
236
+ # def tail
237
+ # end
238
+
239
+ # def last
240
+ # end
241
+
242
+ # def first
243
+ # end
244
+
245
+ # def with_row_count
246
+ # end
247
+
248
+ # def take_every
249
+ # end
250
+
251
+ # def fill_null
252
+ # end
253
+
254
+ def fill_nan(fill_value)
255
+ if !fill_value.is_a?(Expr)
256
+ fill_value = Utils.lit(fill_value)
257
+ end
258
+ _from_rbldf(_ldf.fill_nan(fill_value._rbexpr))
259
+ end
260
+
261
+ # def std
262
+ # end
263
+
264
+ # def var
265
+ # end
266
+
267
+ # def max
268
+ # end
269
+
270
+ # def min
271
+ # end
272
+
273
+ # def sum
274
+ # end
275
+
276
+ # def mean
277
+ # end
278
+
279
+ # def median
280
+ # end
281
+
282
+ # def quantile
283
+ # end
284
+
285
+ # def explode
286
+ # end
287
+
288
+ # def unique
289
+ # end
290
+
291
+ # def drop_nulls
292
+ # end
293
+
294
+ # def melt
295
+ # end
296
+
297
+ # def map
298
+ # end
299
+
300
+ # def interpolate
301
+ # end
302
+
303
+ # def unnest
304
+ # end
305
+
306
+ private
307
+
308
+ def initialize_copy(other)
309
+ super
310
+ self._ldf = _ldf._clone
311
+ end
312
+
313
+ def _from_rbldf(rb_ldf)
314
+ self.class._from_rbldf(rb_ldf)
315
+ end
138
316
  end
139
317
  end
@@ -5,6 +5,10 @@ module Polars
5
5
  Utils.wrap_expr(RbExpr.col(name))
6
6
  end
7
7
 
8
+ def element
9
+ col("")
10
+ end
11
+
8
12
  def std(column, ddof: 1)
9
13
  if column.is_a?(Series)
10
14
  column.std(ddof: ddof)
@@ -0,0 +1,108 @@
1
+ module Polars
2
+ class ListExpr
3
+ attr_accessor :_rbexpr
4
+
5
+ def initialize(expr)
6
+ self._rbexpr = expr._rbexpr
7
+ end
8
+
9
+ def lengths
10
+ Utils.wrap_expr(_rbexpr.arr_lengths)
11
+ end
12
+
13
+ def sum
14
+ Utils.wrap_expr(_rbexpr.lst_sum)
15
+ end
16
+
17
+ def max
18
+ Utils.wrap_expr(_rbexpr.lst_max)
19
+ end
20
+
21
+ def min
22
+ Utils.wrap_expr(_rbexpr.lst_min)
23
+ end
24
+
25
+ def mean
26
+ Utils.wrap_expr(_rbexpr.lst_mean)
27
+ end
28
+
29
+ def sort(reverse: false)
30
+ Utils.wrap_expr(_rbexpr.lst_sort(reverse))
31
+ end
32
+
33
+ def reverse
34
+ Utils.wrap_expr(_rbexpr.lst_reverse)
35
+ end
36
+
37
+ def unique
38
+ Utils.wrap_expr(_rbexpr.lst_unique)
39
+ end
40
+
41
+ # def concat
42
+ # end
43
+
44
+ def get(index)
45
+ index = Utils.expr_to_lit_or_expr(index, str_to_lit: false)._rbexpr
46
+ Utils.wrap_expr(_rbexpr.lst_get(index))
47
+ end
48
+
49
+ def [](item)
50
+ get(item)
51
+ end
52
+
53
+ def first
54
+ get(0)
55
+ end
56
+
57
+ def last
58
+ get(-1)
59
+ end
60
+
61
+ def contains(item)
62
+ Utils.wrap_expr(_rbexpr.arr_contains(Utils.expr_to_lit_or_expr(item)._rbexpr))
63
+ end
64
+
65
+ def join(separator)
66
+ Utils.wrap_expr(_rbexpr.lst_join(separator))
67
+ end
68
+
69
+ def arg_min
70
+ Utils.wrap_expr(_rbexpr.lst_arg_min)
71
+ end
72
+
73
+ def arg_max
74
+ Utils.wrap_expr(_rbexpr.lst_arg_max)
75
+ end
76
+
77
+ def diff(n: 1, null_behavior: "ignore")
78
+ Utils.wrap_expr(_rbexpr.lst_diff(n, null_behavior))
79
+ end
80
+
81
+ def shift(periods = 1)
82
+ Utils.wrap_expr(_rbexpr.lst_shift(periods))
83
+ end
84
+
85
+ def slice(offset, length = nil)
86
+ offset = Utils.expr_to_lit_or_expr(offset, str_to_lit: false)._rbexpr
87
+ length = Utils.expr_to_lit_or_expr(length, str_to_lit: false)._rbexpr
88
+ Utils.wrap_expr(_rbexpr.lst_slice(offset, length))
89
+ end
90
+
91
+ def head(n = 5)
92
+ slice(0, n)
93
+ end
94
+
95
+ def tail(n = 5)
96
+ offset = -Utils.expr_to_lit_or_expr(n, str_to_lit: false)
97
+ slice(offset, n)
98
+ end
99
+
100
+ # def to_struct(n_field_strategy: "first_non_null", name_generator: nil)
101
+ # Utils.wrap_expr(_rbexpr.lst_to_struct(n_field_strategy, name_generator))
102
+ # end
103
+
104
+ def eval(expr, parallel: false)
105
+ Utils.wrap_expr(_rbexpr.lst_eval(expr._rbexpr, parallel))
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,33 @@
1
+ module Polars
2
+ class MetaExpr
3
+ attr_accessor :_rbexpr
4
+
5
+ def initialize(expr)
6
+ self._rbexpr = expr._rbexpr
7
+ end
8
+
9
+ def ==(other)
10
+ _rbexpr.meta_eq(other._rbexpr)
11
+ end
12
+
13
+ def !=(other)
14
+ !(self == other)
15
+ end
16
+
17
+ def pop
18
+ _rbexpr.meta_pop.map { |e| Utils.wrap_expr(e) }
19
+ end
20
+
21
+ def root_names
22
+ _rbexpr.meta_roots
23
+ end
24
+
25
+ def output_name
26
+ _rbexpr.meta_output_name
27
+ end
28
+
29
+ def undo_aliases
30
+ Utils.wrap_expr(_rbexpr.meta_undo_aliases)
31
+ end
32
+ end
33
+ end