dataframe-js
Version:
Immutable and functional data structure for datascientists and developpers
410 lines (246 loc) • 11.5 kB
Markdown
# Changelog
## v1.3.0
**Author**: Guillaume Mousnier, @rjrivero, @martinv13, @Jefftopia
**Type**: Feature
**Changes**:
* dataframe-js can now be used in TypeScript (typing is automatically generated, but it works). Thanks to @willkara.
* A new options parameter is available as DataFrame constructor third parameter.
* You can add new modules to your DataFrame via the DataFrame constructor by using the options `new DataFrame(yourData, yourColumns, {modules: [YourModule]}).
* Pass Modules directly in DataFrame constructor is no more possible
* Row index is now available in DataFrame .map, .filter, .chain thanks to @martinv13.
* DataFrame.dropDuplicates now works on a subset of columns (new parameter), thanks to @martinv13.
* DataFrame.sortBy can now sort rows by multiple columns thanks to @Jefftopia.
* DataFrame.groupBy is now faster thanks to @rjrivero.
* DataFrame can now be created from empty Array without throwing an error.
* DataFrame column inference during creation is faster.
* Other minor optimizations.
* Updating dev dependencies.
* Adding prettier in dev.
## v1.2.8
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Resolve stat.max issue with negative values. See [](https://github.com/d3/d3-request/issues/46). Closes #46
## v1.2.7
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Row.set and Row.delete now changes DataFrame schema. See [](https://github.com/Gmousse/dataframe-js/issues/30)
* Fixing d3-requests to avoid build error. See [](https://github.com/d3/d3-request/issues/24)
## v1.2.6
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Removing the file /lib/modules/sql.js (present due to a bug of npm run build).
* The code doesn't need es7-checktypes anymore.
## v1.2.5
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Removing checktypes. (https://github.com/Gmousse/dataframe-js/pull/27)
* Adding some documentation.
## v1.2.4
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Debugging SQL module in order to handle correctly IN operator.
* Adding validation on SQL module table names. Spaces, tabs, ... are not valid anymore.
* Debugging SQL module in order to work properly with column names having spaces...
* Adding tests on SQL module.
* Debugging file import (JSON, CSVs) unit tests (promises were bugged in the test).
* Adding a FileNotFoundError.
* Wrong file paths or relative paths are now correctly catched and throw an FileNotFoundError.
* Refactoring file imports.
* Adding yarn documentation in the README.
* Adding DataFrame.fromDSV (alias of fromText, to be more precise).
* Adding DataFrame.fromPSV.
* Adding DataFrame.fromTSV.
* Now using d3.format to handle DataFrame.toDSV, DataFrame.toText, DataFrame.toCSV...
* Adding DataFrame.toDSV (alias of toText, to be more precise).
* Adding DataFrame.toPSV.
* Adding DataFrame.toTSV.
* Adding tests on different file formats.
* Catching strange behaviour of csv loading in nodejs 0.10.0 and 0.12.0.
## v1.2.3
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* A critical performance issue related to GroupedDataFrame is now resolved. Related to [#21](https://github.com/Gmousse/dataframe-js/issues/21). **GroupedDataFrame, DataFrame.groupBy, DataFrame.join(s), DataFrame.diff, DataFrame.dropDuplicates are now 10000 x faster** than previously. See below for the detail:
* Removing shitty combine function which was the cause of the performance issue.
* Adding a Row.hash generating the hash id for a row.
* Modifying GroupedDataFrame.\_groupBy to resolve the performance issue.
* Error messages are now displayed correctly.
* NoSuchColumnError is now correctly typed (not TypeError) but simply an Error.
* DataFrame Errors are now exported in the Errors module.
* Updating es7-checktypes-decorator to 0.2.1 for the same purpose.
* Better Error handling on missing or wrong parameters.
* Using custom webpack.optimize.UglifyJsPlugin in webpack.config.js instead of webpack -p.
* Adding option keep_fnames on uglify (see above) to repair checktypes decorator after minification. Related to [#21](https://github.com/Gmousse/dataframe-js/issues/21) and [#23](https://github.com/Gmousse/dataframe-js/issues/23).
* Adding check-node-version --node '>= 4' before npm run lint to avoid CI fails on old node versions. Indeed, eslint doesn't support node < 4 anymore.
* Refactor on npm scripts.
## v1.2.2
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Bugfix on join methods. They have now a correct behaviour. Thanks to @PaulMest
* .outerJoin had a wrong behaviour. It would show the difference between dataframes. .outerJoin is now an alias for .fullJoin. The old behaviour can now be found in .diff.
* Tests on join methods are now splitted into a single file dataframe_join-test.js. In the future, each test will be splitted by category of functions.
## v1.2.1
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Modify gitbook and link in npm.
## v1.2.0
**Author**: Guillaume Mousnier.
**Type**: Feature
**Changes**:
* Adding .pivot().
* Adding .melt().
* Better umd code compression.
* Cleaning the repo.
* The documentation is now under gitbook.
## v1.1.5
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Replacing fs writeFile by writeFileSync.
## v1.1.4
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Contributing.
## v1.1.3
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Adding code coverage.
## v1.1.2
**Author**: Guillaume Mousnier. Thanks to @lmeyerov
**Type**: Hotfix
**Changes**:
* Deleting withespaces removal in DataFrame. [#14](https://github.com/Gmousse/dataframe-js/issues/14).
* Fixing withespaces bugs in SQL. [#14](https://github.com/Gmousse/dataframe-js/issues/14).
* Fixing DataFrame.union() bug when columns aren't in the same order.
[#15](https://github.com/Gmousse/dataframe-js/issues/15).
## v1.1.1
**Author**: Guillaume Mousnier.
**Type**: Feature
**Changes**:
* Fixing a doc issue related to [#13](https://github.com/Gmousse/dataframe-js/issues/13).
## v1.1.0
**Author**: Guillaume Mousnier.
**Type**: Feature
**Changes**:
* (Optional) Adding a support for .fromCSV, .fromText, .fromJSON to use browser File object.
## v1.0.2
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Try catching the fs module for browsers.
## v1.0.0
**Author**: Guillaume Mousnier
**Type**: Major Release
**Changes**:
* Adding the sql module. Related to the issue [#5](https://github.com/Gmousse/dataframe-js/issues/5).
* Adding a GroupedDataFrame object (obtained when group by) with aggregates. Related to the issue [#8](https://github.com/Gmousse/dataframe-js/issues/8).
* DataFrame.groupBy aggregates now returns a DataFrame with an aggregation column. Related to the issue [#8](https://github.com/Gmousse/dataframe-js/issues/8). /!\ Incompatible with older versions.
* DataFrame.groupBy can be used on multiple columns. ex: df.groupBy('col1', 'col2'). Related to the issues [#4](https://github.com/Gmousse/dataframe-js/issues/4) and [#8](https://github.com/Gmousse/dataframe-js/issues/8).
* Adding DataFrame.renameAll() to rename each columns of the DataFrame (current .rename()). Related to issue [#12](https://github.com/Gmousse/dataframe-js/issues/12).
* Changing DataFrame.rename() which now renames only one column (see .renameAll()). Related to issue [#12](https://github.com/Gmousse/dataframe-js/issues/12). /!\ Incompatible with older versions.
* Changing DataFrame.matrix.isCommutative() which now receives DataFrame as parameter and not an Array, in order to be more consistant with all the API. /!\ Incompatible with older versions.
* Adding an optional parameter for DataFrame.toArray(), columnName, allowing to return only one column as Array. Related to issue [#11](https://github.com/Gmousse/dataframe-js/issues/11).
* Adding DataFrame.toCollection(), to return the DataFrame as a collection of dictionnaries (object). Related to issue [#9](https://github.com/Gmousse/dataframe-js/issues/9).
* Adding an optional parameter to DataFrame.toJSON(asCollection) to build a JSON object containing a collection of Object.
* Adding DataFrame.stat.sum() in the stat module. Related to issue [#10](https://github.com/Gmousse/dataframe-js/issues/10).
* Adding static DataFrame.fromCSV(), .fromText() and .fromJSON() method, allowing to create a DataFrame (via a Promise) from files (path or url).
* Adding DataFrame.dropDuplicates() which removes duplicated rows.
* DataFrame.randomSplit() is renamed in DataFrame.bisect(). /!\ Incompatible with older versions.
* Debbugging DataFrame.show(). Related to the issue [#7](https://github.com/Gmousse/dataframe-js/issues/7).
* Debbugging DataFrame.sortBy(). Now, it returns an error when applied on a mixed type column. Related to the issues [#3](https://github.com/Gmousse/dataframe-js/issues/3) and [#6](https://github.com/Gmousse/dataframe-js/issues/6).
* Debbugging DataFrame.sortBy() when used with string.
* DataFrame.distinct() now throw correctly NoSuchColumnError when passing an incorrect columnName.
* Adding Error messages on Row, DataFrame, GroupedDataFrame and modules...
* join methods are completely revisited, providing a result near from sql. Moreover you can join on multiple columns.
* DataFrame.replace() columnNames arguments are now passed as String (for a single column) or in Array (for multiple ones).
* DataFrame.transpose() has now an optional argument, transposeColumnNames which place columnNames as rowNames.
* Adding unit tests to cover more cases.
* Unit tests are now realized on es5 compiled version.
* Clarifying error messages.
* Adding `@checktypes` (see [es7-checktypes-decorator](https://github.com/Gmousse/es7-checktypes-decorator)) to handle wrong arguments types.
* Removing InputTypeError, now replaced by `@checktypes`. /!\ Incompatible with older versions.
## v0.2.9
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Fixing issue [#2](https://github.com/Gmousse/dataframe-js/issues/2).
* Defined as first real stable version.
## v0.2.7
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Updating keywords and presentation.
## v0.2.6
**Author**: Guillaume Mousnier.
**Type**: Hotfix
**Changes**:
* Just some docs.
## v0.2.5
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Correcting commonjs lib.
## v0.2.4
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Correcting (maybe more an alternative) for babel related static method error.
* Adding webpack to compile browser version.
## v0.2.3
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Adding minify version of the compiled code.
* PR from GuillaumeAmat: https://github.com/Gmousse/dataframe-js/pull/1
## v0.2.2
**Author**: Guillaume Mousnier
**Type**: Hotfix
**Changes**:
* Removing jquery in dependencies.
## v0.2.1
**Author**: Guillaume Mousnier
**Type**: Feature
**Changes**:
* First functional version.
## v0.1.0
**Author**: Guillaume Mousnier
**Type**: Feature
**Changes**:
* Init the repo.