rover-df 0.2.3 → 0.2.4

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.
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