Date: 12th October 2022
- Fix copy/paste error in df.apply documentation by @kgeis in javascriptdata/danfojs#469
- Makes an ESM bundle using esbuild by @dcrescim in javascriptdata/danfojs#447
- Fix invalid assert.throws statements by @igonro in javascriptdata/danfojs#419
- Allow Series.append() to use zero, fixes #486 by @BowTiedAztec in javascriptdata/danfojs#487
- Add error handler for io functions by @risenW in javascriptdata/danfojs#503
- add support for excel parsing options arg by @risenW in javascriptdata/danfojs#505
- Chore/add default support for datetime by @risenW in javascriptdata/danfojs#511
Full Changelog: https://github.com/javascriptdata/danfojs/compare/v1.1.1...v1.1.2
Date: 8th March 2022
- add max to list of arithmetic operations by @steveoni in javascriptdata/danfojs#367
- correct lenght -> length by @adamgilman in javascriptdata/danfojs#393
- Bug fixes by @risenW in javascriptdata/danfojs#395
- Fix bug in groupby checking wrong colDtype by @igonro in javascriptdata/danfojs#398
- fix(test): Explicit type in test allows TS to compile by @NeonSpork in javascriptdata/danfojs#411
- Jan kaul esmodule by @risenW in javascriptdata/danfojs#415
Full Changelog: https://github.com/javascriptdata/danfojs/compare/v1.0.2...v1.0.3
Date: 19th Jan 2022
- Update TensorFlow version to fix M1 chip incompatibility by @risenW in javascriptdata/danfojs#358
- Add new feature
iat
andat
by @risenW in javascriptdata/danfojs#359 - Fixed issue with sort by values by @risenW in javascriptdata/danfojs#360
Full Changelog: https://github.com/javascriptdata/danfojs/compare/v1.0.1...v1.0.2
Date: 16th Jan 2022
Minor bug fixes
Contributors: @Devwulf, @risenW
Date: 12th Jan 2022
Major breaking update. See the migration guide for pre-v1 users.
New Features
- Full Typescript support
- streamCsvTransforme ==> Pipable stream transformer for incrementally transforming DataFrames
- streamJSON ==> Supports streaming of local or remote JSON files into DataFrame.
- streamCSV ==> Supports streaming of local or remote CSV files into DataFrame.
- openCsvInputStream ==> Open a local/remote CSV file as a readable stream
- writeCsvOutputStream ==> Open a local/remote CSV file as a writable stream
- javascriptdata/danfojs#325
- javascriptdata/danfojs#296
Bug Fixes
Contributors @risenW @steveoni
Date: 10th Oct 2021
Minor patch update
Date: 2nd Oct 2021
Minor patch update for column name display after aggregation functions like sum, mean, var, are applied to a column axis.
Date: 1st Oct 2021
New Features
- Ability to create empty frames
- Flag for toggling between low/high memory mode
- Inplace support for all mutating operations
- Ability to set Configuration values on frame creation
- Support boolean mask for subsetting with
iloc
andloc
. E.gdf.iloc({rows: df["count"].gt(5), columns: [0, 1]})
- Update an existing column value via subsetting. E.g
df["count"] = [1,3,4,5]
- Add loc indexing support for Series
- Add configuration support for formating DataFrame display in the console
- New DataFrame
applyMap
function for element-wise apply function and
andor
logical comparison support. E.g
df.loc({
rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60))
})
read_csv
now uses Papaparse and supports config values for headers, separator, etc.to_csv
,to_json
andto_excel
functions now support saving to local disk in Node and downloadable in the browser. Also, supports config parameters for output.read_json
now supports config values for headers, authentication, separator, etc.read_excel
now uses XLSX parser, hence supports all XLSX config options.- DataFrame
query
function now accepts boolean masks with single or multiple conditions. E.g
df.query({
rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60))
})
Bug Fixes
- Column data not being updated when mutating internal data array
- Str class error for non-string type
- Better error message
- Fix support for all JS Date format
- Fix loc slicing bug for row index with string labels
- DataFrame apply function now works only across a specified axis
Contributors @risenW
Date: 30th May 2021
[Bug Fixes]: #206 #203 #200 #198 #198 #188 #181 #175 #183 #168
[Patches] #191 #161 #206
Contributors @risenW @steveoni @jpjagt @sponsfreixes @bherbruck @woosuk288 and @adithyaakrishna
Date: 29th March 2021
- [Bug Fixes]: #150 #152
- [Patches] #159 , #158
- [Feature] #154 Perform groupby operation on grouped columns directly:
group = df.groupby(['A"])
group.min()
groupby.apply((x) => x.add(2))
groupby.col(["C"]).apply((x) => x.min())
Contributors: @steveoni @PrawiraGenestonlia @woosuk288 @risenW
Date: 6th March 2021
We added/updated the following features:
- Fix error thrown when danfojs CDN is placed in an HTML header
- Smaller bundle size for browser: From ~1.7mb to about ~550kb
- Stopped bundling Danfojs with Plotly. This means that as of v0.2.3, we no longer ship with Plotly distribution due to the huge size. Plotly plots are still supported, but in order to make them, you have to explicitly add the Plotly CDN or package.
A simple example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.plot.ly/plotly-1.2.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/bundle.min.js"></script>
<title>Document</title>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<script>
dfd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")
.then(df => {
df['AAPL.Open'].plot("div1").box() //makes a box plot
df.plot("div2").table() //display csv as table
new_df = df.set_index({ key: "Date" }) //resets the index to Date column
new_df.plot("div3").line({ columns: ["AAPL.Open", "AAPL.High"] }) //makes a timeseries plot
}).catch(err => {
console.log(err);
})
</script>
</body>
</html>
Release (v0.2.2)
Date: 14th February 2021
We added/updated the following features:
- Fix babel runtime issue in node version
- Smaller size in browser version in this version. From ~8mb to about ~5mb
- Fix browser tag issue and returns back to specific versioning instead of @latest
- Danfojs now ships with an exported version of tensorflowjs-node (2.8.5). This fixes the double dependency issue when building ML models, as you no longer need to install/import tensorflowjs separately.
To use tensoflowjs-node, you can reference it from danfo as shown below:
const dfd = require("danfojs-node")
const tf = dfd.tf //contains a reference to the tensorflowjs-node library
const model = tf.sequential();
model.add(tf.layers.dense({ inputShape: [7], units: 124, activation: 'relu', kernelInitializer: 'leCunNormal' }));
model.add(tf.layers.dense({ units: 64, activation: 'relu' }));
model.summary();
Date: 25th September 2020
We added/updated the following features:
- Read JSON files from local and remote URL into DataFrame (New feature)
- Read Excel files from local or remote URL into DataFrame (New feature)
- Fix string comparison bug in query function (Fix)
- Add append function for DataFrame and Series (New feature)
- Fix null value bug when creating DataFrame from JSON files (Fix)
- Add relative import for reading files into DataFrame
- Add sort_index function to DataFrame and Series (New feature)
- Minor patch and overall optimizations (Fix)
Contributors: Rising Odegua, Stephen Oni, Jhenner Tigreros, Aditya Zope
Date: 15th August 2020
This is a minor release for browser-based environments. We added/updated the following features:
- Ability to create DataFrame/Series from Tensors
- Add iloc function for Series
- Update addColumns function to accept Series
- Add inplace option for fillna
- Fix bug in rename function of DataFrame
- Add Inplace option for query
- Fixed upper bound bug in indexing
Contributors: Rising Odegua, Stephen Oni