Sha256: 6c10aae7cb1f23e107cb3a46363da0b26d299e73dcd78d862a93c9bae61d16e6

Contents?: true

Size: 788 Bytes

Versions: 20

Compression:

Stored size: 788 Bytes

Contents

module EasyML
  module DataframeSerialization
    extend ActiveSupport::Concern

    def serialize_dataframe(df)
      return unless df
      JSON.parse(df.write_json)
    end

    def deserialize_dataframe(df_data)
      return unless df_data.present? && df_data.key?("columns")

      columns = df_data["columns"].map do |col|
        dtype = case col["datatype"]
          when Hash
            if col["datatype"]["Datetime"]
              Polars::Datetime.new(col["datatype"]["Datetime"][0].downcase.to_sym).class
            else
              Polars::Utf8
            end
          else
            Polars.const_get(col["datatype"])
          end
        Polars::Series.new(col["name"], col["values"], dtype: dtype)
      end

      Polars::DataFrame.new(columns)
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
easy_ml-0.2.0.pre.rc65 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc63 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc62 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc61 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc60 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc58 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc57 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc56 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc55 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc52 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc51 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc50 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc49 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc48 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc47 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc46 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc45 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc44 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc43 app/models/concerns/easy_ml/dataframe_serialization.rb
easy_ml-0.2.0.pre.rc41 app/models/concerns/easy_ml/dataframe_serialization.rb