lib/datasets/table.rb in red-datasets-0.0.6 vs lib/datasets/table.rb in red-datasets-0.0.7
- old
+ new
@@ -1,21 +1,33 @@
+require "datasets/dictionary"
+
module Datasets
class Table
include Enumerable
def initialize(dataset)
@dataset = dataset
+ @dictionaries = {}
end
def each(&block)
columner_data.each(&block)
end
def [](name)
- columner_data[name.to_sym]
+ columner_data[normalize_name(name)]
end
+ def dictionary_encode(name)
+ @dictionaries[normalize_name(name)] ||= Dictionary.new(self[name])
+ end
+
+ def label_encode(name)
+ dictionary = dictionary_encode(name)
+ dictionary.encode(self[name])
+ end
+
def fetch_values(*keys)
data = columner_data
keys.collect do |key|
if data.key?(key)
data[key]
@@ -52,8 +64,12 @@
end
end
def columner_data
@columns ||= to_h
+ end
+
+ def normalize_name(name)
+ name.to_sym
end
end
end