Detalhes do pacote

pandas-js

StratoDem5.5kMIT0.2.4

Pandas for JavaScript

pandas, data-analysis, analytics

readme (leia-me)

pandas-js

Pandas for JavaScript

pandas.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 docs
See 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.

changelog (log de mudanças)

Change Log

0.2.1

Changed

  • Updated dev requirements

0.2.0

Added

  • concat to concatenate multiple DataFrames or Series
  • append for DataFrame
  • transpose for DataFrame`

0.1.28

Added

  • rename for DataFrame and Series

Bugfix

  • length previously returned -INFINITY for empty DataFrame

0.1.27

Added

  • cumsum, cummul, cummax and cummin for DataFrame and Series

Changed

  • pivot returns DataFrame with (now) consistently-sorted columns

0.1.21

Changed

  • Removed uncessary tests from npm install.
  • Added reset_index method for DataFrame

0.1.20

Changed

  • Dropped support for to_excel since XLSX adds 460kb to dependencies. Will revisit later.

0.1.19

Added

  • .head(n = 10) method for DataFrame returns first n rows as new DataFrame
  • .tail(n = 10) method for DataFrame returns last n rows as new DataFrame
  • .iloc(rowIdx, colIdx) method for DataFrame returns new DataFrame with [rowIdx, colIdx] indexing

0.1.26

Added

  • .set(column, series) method for DataFrame to add series (Series, List, or Array) to DataFrame at column