All Versions
24
Latest Version
Avg Release Cycle
56 days
Latest Release
-

Changelog History
Page 1

  • v0.18 Changes

    • Added support for arrow (Thanks to @Kopilov for contributing PR 150)
    • Improved support for large Excels tables (Thanks to @ayvazj for contributing PR 126)
    • โž• Added second version of unfold() to work with property accessors instead kotlin cars.unfold("cars", listOf(Car::brand, Car::ps))

    Minor enhancements

    • ๐Ÿ›  Fixed #63: Can not print schema() of empty data-frame
  • v0.18-SNAPSHOT Changes

    • Improved support for large Excels tables (Thanks to @ayvazj for contributing PR 126)
    • โž• Added second version of unfold() to work with property accessors instead kotlin cars.unfold("cars", listOf(Car::brand, Car::ps))

    Minor enhancements

    • ๐Ÿ›  Fixed #63: Can not print schema() of empty data-frame
  • v0.17 Changes

    ๐Ÿš€ Released 2021-07-17

    • ๐Ÿ†• New Jupyter kernel integration with auto-import and improved rendering for DataFrame and DataFrame.schema()
    • โž• Added DataFrame.letsPlot() to ease integration with lets-plots
    • ๐Ÿ†• New tutorial (jupyter notebook): Mammalian Sleep
    • โšก๏ธ Updated to kotlin v1.5 and added supported for value class in List<Any>.toDataFrame() and DataFrame.unfold()
    • โž• Added timestamp support for database support API (fixes #124)
  • v0.16 Changes

    ๐Ÿš€ Released 2021-04-13

    ๐Ÿš€ krangl is now deployed to maven-central and no no longer ot jcenter

    ๐Ÿ”‹ Features

    • โž• Added support for fixed-width files with readFixedWidth()
    • โž• Added supported for more compact column type specification when reading tsv
    • ๐Ÿ›  Fixed: NA and emtpy cell handling in excel-reader
    • ๐Ÿ›  Fixed: Use correct cell types when writing Excel file
  • v0.15.2 Changes

    • ๐Ÿ›  Fixed gather conversion in case of mixed number types
    • ๐Ÿ–จ Indicate guessed column type with prefix Any for basic types in schema and print
  • v0.15.1 Changes

    • ๐Ÿ›  Fixed asDataFrame to include parent type properties
    • โž• Added DataFrame.filterNotNull to remove records will nulls. A column selector can be provided to check only a subset of columns.
  • v0.15 Changes

    November 05, 2020

    ๐Ÿ†• New Features

    • ๐Ÿ‘ #97 Added Excel read/write support (by LeandroC89) ```kotlin

    // read df = DataFrame.readExcel("data.xlsx", sheetName = "sales") df = DataFrame.readExcel("data.xlsx", cellRange = CellRangeAddress.valueOf("A1:D10"))

    // write df.writeExcel("results.xslx")

    
    * [#95](https://github.com/holgerbrandl/kscript/issues/95) Improved column type casts
    

    dataFrameOf("foo")(1, 2, 3).addColumn("stringified_foo") { it["foo"].toStrings() }.schema()

    DataFrame with 3 observations foo [Int] 1, 2, 3 stringified_foo [Str] 1, 2, 3

    dataFrameOf("foo")("1", "2", "3").addColumn("parsed_foo") { it["foo"].toInts() }.schema()

    DataFrame with 3 observations foo [Str] 1, 2, 3 parsed_foo [Int] 1, 2, 3

    • #99 Added filtering by list (similar to R's %in% operator) kotlin irisData.filter { it["Species"].inList("setosa", "versicolor") }

    ๐Ÿ› Bug Fixes

    • ๐Ÿ— #84 Builder now supports mixed numbers in column
    • ๐Ÿ›  #96 & #94 Fixed bugs in join
    • #100 Improved SQL bindings
    • ๐Ÿ›  #99 Fixed median
  • v0.14 Changes

    October 07, 2020
    • ๐Ÿ›  Fixed missing by values overhanging RHS in outer join (fixes #94)
    • โž• Added addRow (via PR92 by LeandroC89
    • โž• Added column type text to sql interface (fixes #72)
  • v0.13 Changes

    July 02, 2020

    ๐Ÿš€ Released: 2020-06-02

    • โž• Added column transformation to calculate cumulative sum cumSum

      sales
      .sortedBy("quarter")
      .addColumn("cum_sales" to { it["sold_units"].cumSum()})
      
    • ๐Ÿ”„ Added column transformation pctChange to calculate percentage change between the current and a prior element. similar to pct_change in pandas (contributed by @amorphous1 in PR85)

      sales
      .groupBy("product")
      .addColumn("sales_pct_change" to { it["sold_units"].pctChange() })
      
    • โž• Added lead and lag (contributed by @amorphous1 in PR85)

      sales
      .groupBy("product")
      .sortedBy("quarter")
      .addColumn("prev_quarter_sales" to { it["sold_units"].lag() })
      
    • ๐ŸŽ Significantly improved join performance (contributed by @amorphous1 in PR85)

    • ๐Ÿ†• New: Extended bindRows API to combine data rowwise (see PR #77 by @CrystalLord)

      val person1 = mapOf("person" to "James", "year" to 1996)
      val person2 = mapOf("person" to "Anne", "year" to 1998)
      

    emptyDataFrame().bindRows(person1, person2).print()