Module: DaruLite::DataFrame::IOAble::ClassMethods
- Defined in:
- lib/daru_lite/data_frame/i_o_able.rb
Instance Method Summary collapse
- #_load(data) ⇒ Object
-
#from_activerecord(relation, *fields) ⇒ Object
Read a dataframe from AR::Relation.
-
#from_csv(path, opts = {}) ⇒ Object
Load data from a CSV file.
-
#from_excel(path, opts = {}) ⇒ Object
Read data from an Excel file into a DataFrame.
-
#from_plaintext(path, fields) ⇒ Object
Read the database from a plaintext file.
-
#from_sql(arh, query) ⇒ Object
Read a database query and returns a Dataset.
Instance Method Details
#_load(data) ⇒ Object
110 111 112 113 114 115 116 117 118 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 110 def _load(data) h = Marshal.load data DaruLite::DataFrame.new( h[:data], index: h[:index], order: h[:order], name: h[:name] ) end |
#from_activerecord(relation, *fields) ⇒ Object
90 91 92 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 90 def from_activerecord(relation, *fields) DaruLite::IO.from_activerecord relation, *fields end |
#from_csv(path, opts = {}) ⇒ Object
Load data from a CSV file. Specify an optional block to grab the CSV
object and pre-condition it (for example use the convert or
header_convert methods).
Arguments
- path - Local path / Remote URL of the file to load specified as a String.
Options
Accepts the same options as the DaruLite::DataFrame constructor and CSV.open() and uses those to eventually construct the resulting DataFrame.
Verbose Description
You can specify all the options to the .from_csv function that you
do to the Ruby CSV.read() function, since this is what is used internally.
For example, if the columns in your CSV file are separated by something
other that commas, you can use the :col_sep option. If you want to
convert numeric values to numbers and not keep them as strings, you can
use the :converters option and set it to :numeric.
The .from_csv function uses the following defaults for reading CSV files
(that are passed into the CSV.read() function):
{
:col_sep => ',',
:converters => :numeric
}
35 36 37 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 35 def from_csv(path, opts = {}, &) DaruLite::IO.from_csv(path, opts, &) end |
#from_excel(path, opts = {}) ⇒ Object
Read data from an Excel file into a DataFrame.
Arguments
- path - Path of the file to be read.
Options
*:worksheet_id - ID of the worksheet that is to be read.
48 49 50 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 48 def from_excel(path, opts = {}, &) DaruLite::IO.from_excel(path, opts, &) end |
#from_plaintext(path, fields) ⇒ Object
Read the database from a plaintext file. For this method to work, the data should be present in a plain text file in columns. See spec/fixtures/bank2.dat for an example.
Arguments
- path - Path of the file to be read.
- fields - Vector names of the resulting database.
Usage
df = DaruLite::DataFrame.from_plaintext 'spec/fixtures/bank2.dat', [:v1,:v2,:v3,:v4,:v5,:v6]
106 107 108 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 106 def from_plaintext(path, fields) DaruLite::IO.from_plaintext path, fields end |
#from_sql(arh, query) ⇒ Object
Read a database query and returns a Dataset
OR Path to a SQlite3 database. USE:
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: "path/to/sqlite.db") arh = ActiveRecord::Base.connection DaruLite::DataFrame.from_sql(dbh, "SELECT * FROM test")
#Alternatively
require 'active_record' DaruLite::DataFrame.from_sql("path/to/sqlite.db", "SELECT * FROM test")
70 71 72 |
# File 'lib/daru_lite/data_frame/i_o_able.rb', line 70 def from_sql(arh, query) DaruLite::IO.from_sql arh, query end |