rover-df 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8ac8c0dda5ee8ea5482b5d52927446e52a60151c05959324970b6b420c6b825
4
- data.tar.gz: cbabf42c40195303fa62a85b40c3d516dff7cb56a4059c2ab6867921fae62bb9
3
+ metadata.gz: 0a96f5fa610232beb50eb2d22cd87b52627dfda44139e618fb0fa5d82f4d90fa
4
+ data.tar.gz: 899ae175705f7195a994c0bfd19fd021334404d07440f05153c08be5fa08c11b
5
5
  SHA512:
6
- metadata.gz: 2b906f49a0accbbf4682216808faf3113c3f31c24e9e434a03f996d8e8e9b4db1c8ca0ccfb3f604e798261f97d88b26a5376bace349f230b5eda5949b492fb88
7
- data.tar.gz: 8f3d590c6df3d588f92c6c84b327211a3dce6b27452b4a1161492ca90dc87cfd6aad02a3c7ef038a9c6cb69155558f2a332acbfd65a9bb4ba1d220333b051872
6
+ metadata.gz: dc61f769ce5bac5fcda65dcc25fb940f7bf9f81ac168029748b5ccf8bfb896008f0836f9523ca3785e22782dff3f4d8dccc19ae823f944391c47df41fd88b3ec
7
+ data.tar.gz: 5a0c7e5e77233ef8bf7b4df23d711ec22a2e85165715ca330344a0b6cd5bef99e571256496e9c6f6037bf0fc0c771b4e951d91f0a85c17211127649d6e246878
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.2.4 (2021-06-03)
2
+
3
+ - Added grouping for `std` and `var`
4
+ - Fixed `==` for data frames
5
+ - Fixed error with `first` and `last` for data frames
6
+ - Fixed error with `last` when vector size is smaller than `n`
7
+
1
8
  ## 0.2.3 (2021-02-08)
2
9
 
3
10
  - Added `select`, `reject`, and `map!` methods to vectors
data/README.md CHANGED
@@ -123,6 +123,20 @@ df[1..3]
123
123
  df[[1, 4, 5]]
124
124
  ```
125
125
 
126
+ Iterate over rows
127
+
128
+ ```ruby
129
+ df.each_row { |row| ... }
130
+ ```
131
+
132
+ Iterate over a column
133
+
134
+ ```ruby
135
+ df[:a].each { |item| ... }
136
+ # or
137
+ df[:a].each_with_index { |item, index| ... }
138
+ ```
139
+
126
140
  ## Filtering
127
141
 
128
142
  Filter on a condition
@@ -181,6 +195,8 @@ df[:a].median
181
195
  df[:a].percentile(90)
182
196
  df[:a].min
183
197
  df[:a].max
198
+ df[:a].std
199
+ df[:a].var
184
200
  ```
185
201
 
186
202
  Count occurrences
@@ -259,6 +275,14 @@ df[:a][0..2] = 1
259
275
  df[:a][0..2] = [1, 2, 3]
260
276
  ```
261
277
 
278
+ Update all elements
279
+
280
+ ```ruby
281
+ df[:a] = df[:a].map { |v| v.gsub("a", "b") }
282
+ # or
283
+ df[:a].map! { |v| v.gsub("a", "b") }
284
+ ```
285
+
262
286
  Update elements matching a condition
263
287
 
264
288
  ```ruby
@@ -163,7 +163,7 @@ module Rover
163
163
  last(n)
164
164
  end
165
165
 
166
- def first(n = nil)
166
+ def first(n = 1)
167
167
  new_vectors = {}
168
168
  @vectors.each do |k, v|
169
169
  new_vectors[k] = v.first(n)
@@ -171,7 +171,7 @@ module Rover
171
171
  DataFrame.new(new_vectors)
172
172
  end
173
173
 
174
- def last(n = nil)
174
+ def last(n = 1)
175
175
  new_vectors = {}
176
176
  @vectors.each do |k, v|
177
177
  new_vectors[k] = v.last(n)
@@ -301,7 +301,7 @@ module Rover
301
301
  Group.new(self, columns.flatten)
302
302
  end
303
303
 
304
- [:max, :min, :median, :mean, :percentile, :sum].each do |name|
304
+ [:max, :min, :median, :mean, :percentile, :sum, :std, :var].each do |name|
305
305
  define_method(name) do |column, *args|
306
306
  check_column(column)
307
307
  self[column].send(name, *args)
@@ -360,7 +360,7 @@ module Rover
360
360
  def ==(other)
361
361
  size == other.size &&
362
362
  keys == other.keys &&
363
- keys.all? { |k| self[k] == other[k] }
363
+ keys.all? { |k| self[k].to_numo == other[k].to_numo }
364
364
  end
365
365
 
366
366
  def plot(x = nil, y = nil, type: nil)
data/lib/rover/group.rb CHANGED
@@ -9,7 +9,7 @@ module Rover
9
9
  Group.new(@df, @columns + columns.flatten)
10
10
  end
11
11
 
12
- [:count, :max, :min, :mean, :median, :percentile, :sum].each do |name|
12
+ [:count, :max, :min, :mean, :median, :percentile, :sum, :std, :var].each do |name|
13
13
  define_method(name) do |*args|
14
14
  n = [name, args.first].compact.join("_")
15
15
 
data/lib/rover/vector.rb CHANGED
@@ -263,7 +263,11 @@ module Rover
263
263
  end
264
264
 
265
265
  def last(n = 1)
266
- Vector.new(@data[-n..-1])
266
+ if n >= size
267
+ Vector.new(@data)
268
+ else
269
+ Vector.new(@data[-n..-1])
270
+ end
267
271
  end
268
272
 
269
273
  def take(n)
data/lib/rover/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rover
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rover-df
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-08 00:00:00.000000000 Z
11
+ date: 2021-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray