All Versions
Latest Version
Avg Release Cycle
56 days
Latest Release

Changelog History
Page 2

  • v0.11 Changes

    March 18, 2019
    • ๐Ÿ†• New: Added built-it support for Long columns (PR #69 by @davidpedrosa)
  • v0.10.3 Changes

    October 04, 2018

    ๐Ÿ‘€ See for changes.

  • v0.10.2 Changes

    September 30, 2018

    ๐Ÿ‘€ See for changes.

  • v0.10.1 Changes

    September 06, 2018

    ๐Ÿ‘€ See for changes.

  • v0.10 Changes

    September 03, 2018


    • ๐Ÿ†• New: summarizeAt for simplified column aggregations
    • ๐Ÿ†• New: setNames to replace column headers of a data-frame
    • ๐Ÿ†• New: Deparse Iterables more conveniently using lambdas in deparseRecords


    • ๐Ÿ›  Fixed: Can not read csv-tables without header
    • โž• Added option to skip lines in csv reader.
    • ๐Ÿ›  Fixed schema() should no throw memory exception (#53: )
    • ๐Ÿ›  Fixed DataFrame.readTSV default format (#56)
    • โž• Added where() for conditional column creation (relates to #54)
    • โž• Added writeTSV
    • ๐Ÿ›  Fixed grouping by Any columns
    • โž• Added: toDoubleMatrix() helper extension method
  • v0.9.1 Changes

    May 17, 2018

    Major Enhancements

    • DataFrame.fromJson will now flatten nested json data


    • โž• Added sum() extension for columns summaries/transformation
    • โž• Added dataFrameOf() that accepts Iterable of names
    • โž• Added bindRows() alias that accepts data frames as varargs
    • โž• Added bindCols() extension for list of DataCol
    • Fill missing cells with NA in bindRows and bindCols
    • Resolve duplicated column names in bindCols()
    • โž• Added new builder to create data-frame from DataFrameRow iterator
    • โž• Added addRowNumber to add the row number as column to a data-frame
    • ๐Ÿ›  Fixed: Incorrect types in gathered columns
  • v0.9 Changes

    April 11, 2018

    ๐Ÿš€ Released 2018-04-11

    Major Enhancements

    • ๐Ÿ‘ Allow index access for column model (fixes #46): irisData[1][2]
    • ๐Ÿ‘Œ Improved DataFrame.count to respect existing groupings and to simply count rows if no grouping is defined
    • โž• Added moveLeft and moveRight to rearrange column order
    • โž• Added nest and unnest to wrap columns into sub-tables and back
    • โž• Added expand and complete to expand column value-sets into data-frames
    • โž• Added function literal support for count and groupBy (fixes #48): irisData.groupByExpr{ it["Sepal.Width"] > 3 }
    • โž• Added receiver context for sortBy lambdas with sorting specific API (fixes #44)

    ๐Ÿ‘Œ Improved data-frame rendering

    • ๐Ÿ‘Œ Improved print()ing of data-frames and schema()ta to have better alignment and more formatting options
    • 0๏ธโƒฃ Print row numbers by default when using print (fixes #49)

    Minor Enhancements

    • ๐Ÿšš Renamed select2/remove2 to selectIf and removeIF
    • ๐Ÿ›  Fixed #39: Can not add scalar object as column
    • ๐Ÿ“š Started submodule for documentation
    • ๐Ÿ–จ Hide columns in print after exceeding maximum line length (fixes #50)
    • ๐Ÿ›  Fixed #45: sleepData.sortedBy{ "order" } should fail with informative exception
  • v0.8 Changes

    March 21, 2018

    ๐Ÿš€ Released 2018-03-21

    Major Enhancements

    • โž• Added property unfolding df.unfold<Person("user", properties=listOf("address"))
    • โž• Added text matching helper: irisData.filter{ it["Species"].isMatching{ startsWith("se") }} (fixes #21)
    • โž• Added sortedByDescending and desc and added more sorting tests
    • โž• Added More elegant object bindings via reflection. Example val objPersons : Iterable<User> = users.rowsAs<User>() (fixes #22)
    • โž• Added compressed csv write support, configurable or by filename guessing

    Minor Enhancements

    • More robust row to object conversion
    • Made List<Boolean?>.not() public
    • ๐Ÿ‘‰ Use regex instead of string as separate separator
    • ๐Ÿ›  Replaced fixed temporary column names with uuids
    • ๐Ÿ›  Fixed incorrect coercion of incomplete inplace data to df
    • โž• Added concat operator for string column arithmetics
    • ๐Ÿ›  Fixed arithmetic comparison operators
    • โž• Added beakerx display adapter
  • v0.7 Changes

    March 14, 2018

    ๐Ÿš€ Released 2018-03-14

    Major Enhancements

    • ๐Ÿ‘ Allow specifying column types when reading csv data (Thanks to LeanderG for providing the PR)
    • โž• Added groupedBy to provide distinct set of grouping tuples as data-frame
    • ๐Ÿ‘ Read support for URLs (Example DataFrame.readCSV("").glimpse())
    • โž• Added basic read/write support for JSON data
    • โž• Added generic collection conversion Iterable<Any>.asDataFrame() via reflection (fixes #24)

    Incompatible API changes

    • ๐Ÿ“‡ Renamed structure to columnTypes
    • Renamed all table read function from .from* to .read*
    • ๐Ÿ›  Fixed #29: mapNonNull should use parameter and not receiver

    Minor Enhancements

    • Namespace cleanup to hide internal helpers
    • Bundled irisData
    • โœจ Enhanced: DataCol.toDouble() should work for int columns as well (same vv)
    • โž• Added MIT License
    • ๐Ÿ‘‰ Use iterable instead of list for object conversions
  • v0.6 Changes

    November 12, 2017

    ๐Ÿš€ Released: 2017-11-11

    • More idiomatic API mimicking kotlin stdlib where possible
    • โž• Added DataFrame.remove to drop columns from data-frames
    • โž• Added DataFrame.addColumn to add column from data-frames
    • โž• Added DataFrame.sortBy(TableFormula)
    • โž• Added DataFrame.filterByRow
    • Reworked column selector API
    • ๐Ÿ”„ Changed column expression API from Any to a constrained set of support types
    • ๐Ÿ›  Fixed issues when combining columns of different types (e.g. DoubleCol + IntCol
    • โฌ‡๏ธ Dropped most unary operators