pandas-js
Pandas for JavaScriptpandas.js is an open source (experimental) library mimicking the Python pandas library. It relies on Immutable.js as the NumPy base. The main data objects in pandas.js are the
Series
and the
DataFrame
Documentation
See the docsSee also this post on use for optimizing React logic.
Installation and use
$ npm install pandas-js
Importing
Series
and
DataFrame
import { Series, DataFrame } from 'pandas-js';
Create a new
Series
const ds = new Series([1, 2, 3, 4], {name: 'My test name', index: [2, 3, 4, 5]})
ds.toString()
// Returns:
// 2 1
// 3 2
// 4 3
// 5 4
// Name: My test name, dtype: dtype(int)
Filter a
Series
const ds = new Series([1, 2, 3]);
// Returns Series([2, 3]);
ds.filter(ds.gte(2));
Filtering can be done with generic methods
const ds = new Series([1, 2, 3], {name: 'Test name'})
// Returns Series([true, false, false])
ds.eq(1);
// Returns Series([false, true, true])
ds.eq(new Series([0, 2, 3]));
// Returns Series([false, true, true])
ds.eq(Immutable.List([0, 2, 3]));
// Returns Series([false, true, true])
ds.eq([0, 2, 3]);
// Returns Series([2, 3])
ds.filter(ds.eq([0, 2, 3]));
Create a new
DataFrame
const df = new DataFrame([{x: 1, y: 2}, {x: 2, y: 3}, {x: 3, y: 4}])
// Returns:
// x | y
// 0 1 | 2
// 1 2 | 3
// 2 3 | 4
df.toString();
Filtering a
DataFrame
const df = new DataFrame(Immutable.Map({x: new Series([1, 2]), y: new Series([2, 3])}));
// Returns DataFrame(Immutable.Map({x: Series([2]), y: Series([3]));
df.filter(df.get('x').gt(1));
// Returns DataFrame(Immutable.Map({x: Series([2]), y: Series([3]));
df.filter([false, true]);
// Returns DataFrame(Immutable.Map({x: Series([2]), y: Series([3]));
df.filter(Immutable.Map([false, true]));
Development
Testing and build
$ npm run test
$ npm run build
Testing uses Jest. Building requires the babel compiler.