Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/TomFevrier/kiwis

A Pandas-inspired data wrangling toolkit in JavaScript
https://github.com/TomFevrier/kiwis

data data-manipulation data-wrangling pandas

Last synced: 18 days ago
JSON representation

A Pandas-inspired data wrangling toolkit in JavaScript

Awesome Lists containing this project

README

        

# Kiwis 🥝

## A Pandas-inspired data wrangling toolkit in JavaScript

### Installation

`npm install kiwis`

### Getting started

```js
const kw = require('kiwis');

const h2g2Characters = kw.DataFrame([
{
name: 'Marvin',
surname: '',
occupation: 'Paranoid Android'
},
{
name: 'Zaphod',
surname: 'Beeblebrox',
occupation: 'President of the Galaxy'
},
{
name: 'Arthur',
surname: 'Dent',
occupation: null
}
]);

h2g2Characters.show();

/*
| name | surname | occupation
=================================================
0 | Marvin | N/A | Paranoid Android
1 | Zaphod | Beeblebrox | President of the Galaxy
2 | Arthur | Dent | N/A

[3 rows × 3 columns]
Columns: name, surname, occupation
*/

console.log(h2g2Characters.get(1));

/*
{
name: 'Zaphod',
surname: 'Beeblebrox',
occupation: 'President of the Galaxy'
}
*/

h2g2Characters.name.show();

/*
0 | Marvin
1 | Zaphod
2 | Arthur

Length: 3
*/
```

## Documentation

#### Table of Contents

- [Kiwis](#kiwis)
- [DataFrame](#dataframe)
- [Parameters](#parameters)
- [Examples](#examples)
- [Series](#series)
- [Parameters](#parameters-1)
- [Examples](#examples-1)
- [loadCSV](#loadcsv)
- [Parameters](#parameters-2)
- [Examples](#examples-2)
- [parseCSV](#parsecsv)
- [Parameters](#parameters-3)
- [Examples](#examples-3)
- [isNA](#isna)
- [Parameters](#parameters-4)
- [Examples](#examples-4)
- [DataFrame](#dataframe-1)
- [Properties](#properties)
- [toArray](#toarray)
- [clone](#clone)
- [get](#get)
- [Parameters](#parameters-5)
- [Examples](#examples-5)
- [first](#first)
- [last](#last)
- [find](#find)
- [Parameters](#parameters-6)
- [Examples](#examples-6)
- [set](#set)
- [Parameters](#parameters-7)
- [Examples](#examples-7)
- [head](#head)
- [Parameters](#parameters-8)
- [Examples](#examples-8)
- [tail](#tail)
- [Parameters](#parameters-9)
- [Examples](#examples-9)
- [slice](#slice)
- [Parameters](#parameters-10)
- [Examples](#examples-10)
- [rows](#rows)
- [Examples](#examples-11)
- [items](#items)
- [Examples](#examples-12)
- [forEach](#foreach)
- [Parameters](#parameters-11)
- [Examples](#examples-13)
- [map](#map)
- [Parameters](#parameters-12)
- [Examples](#examples-14)
- [replace](#replace)
- [Parameters](#parameters-13)
- [Examples](#examples-15)
- [append](#append)
- [Parameters](#parameters-14)
- [Examples](#examples-16)
- [insert](#insert)
- [Parameters](#parameters-15)
- [Examples](#examples-17)
- [concat](#concat)
- [Parameters](#parameters-16)
- [Examples](#examples-18)
- [join](#join)
- [Parameters](#parameters-17)
- [Examples](#examples-19)
- [addColumn](#addcolumn)
- [Parameters](#parameters-18)
- [Examples](#examples-20)
- [rename](#rename)
- [Parameters](#parameters-19)
- [Examples](#examples-21)
- [reorder](#reorder)
- [Parameters](#parameters-20)
- [Examples](#examples-22)
- [dropNA](#dropna)
- [Parameters](#parameters-21)
- [Examples](#examples-23)
- [dropDuplicates](#dropduplicates)
- [Parameters](#parameters-22)
- [Examples](#examples-24)
- [filter](#filter)
- [Parameters](#parameters-23)
- [Examples](#examples-25)
- [drop](#drop)
- [Parameters](#parameters-24)
- [Examples](#examples-26)
- [sort](#sort)
- [Parameters](#parameters-25)
- [Examples](#examples-27)
- [shuffle](#shuffle)
- [Parameters](#parameters-26)
- [Examples](#examples-28)
- [pivot](#pivot)
- [Parameters](#parameters-27)
- [Examples](#examples-29)
- [toString](#tostring)
- [show](#show)
- [toCSV](#tocsv)
- [Parameters](#parameters-28)
- [Examples](#examples-30)
- [toJSON](#tojson)
- [Parameters](#parameters-29)
- [Examples](#examples-31)
- [Series](#series-1)
- [Properties](#properties-1)
- [toArray](#toarray-1)
- [clone](#clone-1)
- [get](#get-1)
- [Parameters](#parameters-30)
- [Examples](#examples-32)
- [first](#first-1)
- [last](#last-1)
- [find](#find-1)
- [Parameters](#parameters-31)
- [Examples](#examples-33)
- [set](#set-1)
- [Parameters](#parameters-32)
- [Examples](#examples-34)
- [head](#head-1)
- [Parameters](#parameters-33)
- [Examples](#examples-35)
- [tail](#tail-1)
- [Parameters](#parameters-34)
- [Examples](#examples-36)
- [slice](#slice-1)
- [Parameters](#parameters-35)
- [Examples](#examples-37)
- [values](#values)
- [Examples](#examples-38)
- [items](#items-1)
- [Examples](#examples-39)
- [forEach](#foreach-1)
- [Parameters](#parameters-36)
- [Examples](#examples-40)
- [map](#map-1)
- [Parameters](#parameters-37)
- [Examples](#examples-41)
- [append](#append-1)
- [Parameters](#parameters-38)
- [Examples](#examples-42)
- [insert](#insert-1)
- [Parameters](#parameters-39)
- [Examples](#examples-43)
- [concat](#concat-1)
- [Parameters](#parameters-40)
- [Examples](#examples-44)
- [dropNA](#dropna-1)
- [Parameters](#parameters-41)
- [Examples](#examples-45)
- [dropDuplicates](#dropduplicates-1)
- [Parameters](#parameters-42)
- [Examples](#examples-46)
- [any](#any)
- [Parameters](#parameters-43)
- [Examples](#examples-47)
- [all](#all)
- [Parameters](#parameters-44)
- [Examples](#examples-48)
- [filter](#filter-1)
- [Parameters](#parameters-45)
- [Examples](#examples-49)
- [drop](#drop-1)
- [Parameters](#parameters-46)
- [Examples](#examples-50)
- [sort](#sort-1)
- [Parameters](#parameters-47)
- [Examples](#examples-51)
- [shuffle](#shuffle-1)
- [Parameters](#parameters-48)
- [Examples](#examples-52)
- [unique](#unique)
- [counts](#counts)
- [Parameters](#parameters-49)
- [Examples](#examples-53)
- [frequencies](#frequencies)
- [Parameters](#parameters-50)
- [Examples](#examples-54)
- [round](#round)
- [Parameters](#parameters-51)
- [Examples](#examples-55)
- [reduce](#reduce)
- [Parameters](#parameters-52)
- [Examples](#examples-56)
- [sum](#sum)
- [min](#min)
- [max](#max)
- [extent](#extent)
- [mean](#mean)
- [median](#median)
- [std](#std)
- [toString](#tostring-1)
- [show](#show-1)
- [toCSV](#tocsv-1)
- [Parameters](#parameters-53)
- [Examples](#examples-57)
- [toJSON](#tojson-1)
- [Parameters](#parameters-54)
- [Examples](#examples-58)
- [PivotTable](#pivottable)
- [Properties](#properties-2)
- [rollup](#rollup)
- [Parameters](#parameters-55)
- [Examples](#examples-59)
- [count](#count)
- [Examples](#examples-60)
- [sum](#sum-1)
- [Parameters](#parameters-56)
- [Examples](#examples-61)
- [min](#min-1)
- [Parameters](#parameters-57)
- [Examples](#examples-62)
- [max](#max-1)
- [Parameters](#parameters-58)
- [Examples](#examples-63)
- [mean](#mean-1)
- [Parameters](#parameters-59)
- [Examples](#examples-64)
- [median](#median-1)
- [Parameters](#parameters-60)
- [Examples](#examples-65)
- [std](#std-1)
- [Parameters](#parameters-61)
- [Examples](#examples-66)
- [toString](#tostring-2)
- [show](#show-2)
- [toJSON](#tojson-2)
- [Parameters](#parameters-62)
- [Examples](#examples-67)

### Kiwis

#### DataFrame

Returns a new DataFrame from the given data

##### Parameters

- `data` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of objects

##### Examples

```javascript
const kw = require('kiwis');

const df = kw.DataFrame([
{
name: 'Marvin',
surname: '',
occupation: 'Paranoid Android'
},
{
name: 'Zaphod',
surname: 'Beeblebrox',
occupation: 'President of the Galaxy'
},
{
name: 'Arthur',
surname: 'Dent',
occupation: null
}
]);

console.log(df.length) // 3
console.log(df.columns) // ['name', 'surname', 'occupation']
console.log(df.empty) // false
```

Returns **[DataFrame](#dataframe)**

#### Series

Returns a new Series from the given data

##### Parameters

- `data` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>** An array of values

##### Examples

```javascript
const kw = require('kiwis');

const series = kw.Series([1, 1, 2, 3, 5, 8, 13, 21, 34]);

console.log(series.length) // 9
console.log(series.empty) // false
```

Returns **[Series](#series)**

#### loadCSV

Loads a CSV file into a DataFrame

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to load
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options (optional, default `{}`)
- `options.delimiter` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Delimiter of the file (optional, default `','`)
- `options.encoding` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Encoding of the file (optional, default `'utf8'`)
- `options.prettify` **(`"none"` \| `"camelCase"` \| `"snake_case"`)** Prettify column names (optional, default `'none'`)

##### Examples

```javascript
const kw = require('kiwis');

// Loads a CSV file
const df = kw.loadCSV('myAwesomeData.csv');

// Loads a TSV file and prettify the columns in camelCase
const df = kw.loadCSV('myAwesomeData.tsv', { delimiter: '\t', prettify; 'camelCase' });
```

Returns **[DataFrame](#dataframe)**

#### parseCSV

Parses a CSV string into a DataFrame

##### Parameters

- `csv` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** CSV string to parse
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options (optional, default `{}`)
- `options.delimiter` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Delimiter of the file (optional, default `','`)
- `options.prettify` **(`"none"` \| `"camelCase"` \| `"snake_case"`)** Prettify column names (optional, default `'none'`)

##### Examples

```javascript
const kw = require('kiwis');

// Parses a CSV string
const df = kw.parseCSV(`
name,surname,occupation\n
Marvin,,Paranoid Android\n
Zaphod,Beeblebrox,President of the Galaxy\n
Arthur,Dent,\n
`);
```

Returns **[DataFrame](#dataframe)**

#### isNA

Determines whether a value is N/A or not

##### Parameters

- `value` **any**
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Options (optional, default `{}`)
- `options.keep` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>** Array of falsy values not considered N/A (optional, default `[0,false]`)

##### Examples

```javascript
Kiwis.isNA('kiwi'); // false
Kiwis.isNA(''); // true
Kiwis.isNA('', { keep: [0, false, ''] }); // false
```

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

### DataFrame

#### Properties

- `length` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The number of rows in the DataFrame
- `empty` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether the DataFrame contains any row or not
- `columns` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** The columns of the DataFrame

#### toArray

Returns the DataFrame as an array

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>**

#### clone

Clones the DataFrame

Returns **[DataFrame](#dataframe)**

#### get

Returns any row of the DataFrame

##### Parameters

- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

##### Examples

```javascript
// Returns the row at index 4
df.get(4);
```

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

#### first

Returns the first row of the DataFrame

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

#### last

Returns the last row of the DataFrame

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

#### find

Returns a specific row in the DataFrame

##### Parameters

- `condition` **callback** The returned row is the first one that matches this condition

##### Examples

```javascript
// Returns the row where the 'name' is 'Marvin'
df.find(row => row.name === 'Marvin');
```

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

#### set

Sets the content of a cell in the DataFrame

##### Parameters

- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
- `column` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `value` **any**

##### Examples

```javascript
// Sets the value for 'name' on the 42nd row to 'Slartibartfast'
df.set(42, 'name', 'Slartibartfast');
```

#### head

Returns a new DataFrame containing the first N rows of the DataFrame

##### Parameters

- `n` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of rows to select (optional, default `5`)

##### Examples

```javascript
// Returns a new DataFrame with the first 10 rows
df.head(10);
```

Returns **[DataFrame](#dataframe)**

#### tail

Returns a new DataFrame containing the last N rows of the DataFrame

##### Parameters

- `n` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of rows to select (optional, default `5`)

##### Examples

```javascript
// Returns a new DataFrame with the last 5 rows
df.tail();
```

Returns **[DataFrame](#dataframe)**

#### slice

Returns a new DataFrame with a slice of the original rows

##### Parameters

- `start` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zero-based index at which to start extraction
- `end` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zero-based index before which to end extraction (optional, default `DataFrame.length`)

##### Examples

```javascript
// Returns a new DataFrame with rows starting at index 10
df.slice(10);
// Returns a new DataFrame with rows between index 24 (included) and 42 (excluded)
df.slice(24, 42);
```

Returns **[DataFrame](#dataframe)**

#### rows

Returns the rows of the DataFrame as an iterable

##### Examples

```javascript
for (let row of df.rows()) {
console.log(row);
}
```

Returns **Iterable<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>**

#### items

Returns an array of index/row pairs as an iterable

##### Examples

```javascript
for (let [index, row] of df.items()) {
console.log(index, row);
}
```

Returns **Iterable<[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>>**

#### forEach

Applies a callback function to each row of the DataFrame

##### Parameters

- `callback` **callback**

##### Examples

```javascript
// Displays each element in the 'name' column of the DataFrame
df.forEach(row => console.log(row.name));
```

#### map

Returns a new Series populated with the results of a callback function applied on each row the DataFrame

##### Parameters

- `callback` **callback**

##### Examples

```javascript
// Returns a Series of full names by joining the name and surname for each row of the DataFrame
df.map(row => [row.name, row.surname].join(' '));
```

Returns **[Series](#series)**

#### replace

Replaces all occurences of the given value in the DataFrame by another value

##### Parameters

- `oldValue` **any**
- `newValue` **any**
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)
- `options.columns` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Columns to replace into (optional, default `DataFrame.columns`)

##### Examples

```javascript
// Replaces all occurrences of 'panda' with 'kiwi' in the column 'animal'
df.replace('panda', 'kiwi', { inPlace: true, columns: 'animal' });
```

Returns **[DataFrame](#dataframe)**

#### append

Appends new rows to a DataFrame

##### Parameters

- `rows` **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>)** Row or array of rows to append to the DataFrame
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.extend` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Adds new columns to the DataFrame if they do not already exist (optional, default `false`)

##### Examples

```javascript
const rows = [
{
name: 'Marvin',
occupation: 'Robot'
},
{
name: 'Zaphod Beeblebrox',
occupation: 'President of the Galaxy'
}
];
df.append(rows, { extend: true });
```

Returns **[DataFrame](#dataframe)**

#### insert

Inserts new rows into a DataFrame

##### Parameters

- `rows` **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>)** Row or array of rows to insert into the DataFrame
- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Index to insert the rows at (optional, default `0`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.extend` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Adds new columns to the DataFrame if they do not already exist (optional, default `false`)

##### Examples

```javascript
// Inserts a new row at index 2 in the DataFrame
df.insert({ name: 'Trillian', species: 'human' }, 2, { extend: true });
```

Returns **[DataFrame](#dataframe)**

#### concat

Concatenates another DataFrame to the DataFrame

##### Parameters

- `other` **[DataFrame](#dataframe)**
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.extend` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Adds new columns to the DataFrame if they do not already exist (optional, default `false`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Concatenates df1 and df2, adding columns from df2 into df1 if they do not exist
df1.concat(df2, { inPlace: true, extend: true });
```

Returns **[DataFrame](#dataframe)**

#### join

Performs a join of two DataFrames on a given column

##### Parameters

- `other` **[DataFrame](#dataframe)**
- `column` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Column to join the DataFrames on
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.how` **(`"inner"` \| `"outer"` \| `"left"` \| `"right"`)** How the DataFrames should be joined: `'inner'` only keeps the intersection of the rows, `'outer'` keeps the union of the rows, `'left'` only keeps rows from the current DataFrame, and `'right'` only keeps rows from the `other` DataFrame (optional, default `'inner'`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Joins DataFrames df1 and df2 along their column 'id', keeping only the rows from df1
df1.join(df2, 'id', { inPlace: true, how: 'left' });
```

Returns **[DataFrame](#dataframe)**

#### addColumn

Adds a new column to the DataFrame

##### Parameters

- `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of the new column
- `column` **(any | [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any> | [Series](#series))** Content of the new column as an array, a Series or any value (to be set on every rows)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.extend` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** If the new column is not the same length as the DataFrame, extends the DataFrame (optional, default `false`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Adds a new column 'fullName' by applying a function on the DataFrame
df.addColumn(
'fullName',
df.map(row => [row.name, row.surname].join(' ')),
{ inPlace: true }
);

// Adds a new column 'species', with 'human' on every rows
df.addColumn('species', 'human', { inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### rename

Rename columns of the DataFrame

##### Parameters

- `map` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<key, [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** Map of the columns to rename to their new names
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Renames column 'occupation' into 'job'
df.rename({ occupation: 'job' }, { inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### reorder

Reorder the columns of the DataFrame

##### Parameters

- `names` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** Array containing the new order of the columns
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
console.log(df.columns) // ['occupation', 'species', 'name']
df.reorder(['name', 'occupation', 'species'], { inPlace: true });
console.log(df.columns) // ['name', 'occupation', 'species']
```

Returns **[DataFrame](#dataframe)**

#### dropNA

Drops N/A values from the DataFrame

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.axis` **(`"rows"` \| `"columns"`)** Determines whether rows or columns should be dropped (optional, default `'rows'`)
- `options.keep` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>** Array of falsy values to keep in the DataFrame (optional, default `[0,false]`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Drops all rows containg N/A values
df.dropNA({ inPlace: true });
// Drops all columns containing N/A values (but keeps empty strings as well as 0 and false)
df.dropNA({ axis: 'columns', keep: [0, false, ''], inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### dropDuplicates

Drops duplicate rows from the DataFrame

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.columns` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Column or array of columns to consider for comparison (optional, default `DataFrame.columns`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Drops duplicate rows with similar values for 'name'
df.dropDuplicates({ columns: 'name', inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### filter

Filters columns or rows of the DataFrame

##### Parameters

- `filter` **(callback | [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Can be a callback (applied to rows or columns) or an array of column names to keep
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.axis` **(`"rows"` \| `"columns"`)** Determines whether the callback should apply to rows or columns (optional, default `'rows'`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Only keeps the 'date' and 'url' columns
df.filter(['date', 'url'], { inPlace: true });
// Only keeps rows whose date is 4/20/20
df.filter(row => row.date === '2020-04-20', { inPlace: true });
// Only keeps columns whose name contains 'data'
df.filter(column => column.includes('data'), { axis: 'columns', inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### drop

Drops columns or rows from the DataFrame

##### Parameters

- `filter` **(callback | [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Can be a callback (applied to rows or columns) or an array of column names to drop
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.axis` **(`"rows"` \| `"columns"`)** Determines whether the callback should apply to rows or columns (optional, default `'rows'`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Removes the 'date' and 'url' columns
df.drop(['date', 'url'], { inPlace: true });
// Removes all rows whose date is 4/20/20
df.drop(row => row.date === '2020-04-20', { inPlace: true });
// Removes columns whose name contains 'data'
df.drop(column => column.includes('data'), { axis: 'columns', inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### sort

Sorts the DataFrame

##### Parameters

- `by` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Key or array of keys to sort the DataFrame by
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the DataFrame in descending order (optional, default `false`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Sorts the DataFrame alphabetically by 'name'
df.sort('name', { inPlace: true });
// Sorts the DataFrame in descending ordr by 'age'
df.sort('age', { reverse: true, inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### shuffle

Shuffles the rows or columns of a DataFrame

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.axis` **(`"rows"` \| `"columns"`)** Determines whether rows or columns should be shuffled (optional, default `'rows'`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current DataFrame instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Shuffles the columns of the DataFrame
df.shuffle({ axis: 'columns', inPlace: true });
```

Returns **[DataFrame](#dataframe)**

#### pivot

Returns a PivotTable along the given columns

##### Parameters

- `columns` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)** Column or array of columns to pivot along

##### Examples

```javascript
// Returns a PivotTable along columns 'sector' and 'date'
df.pivot(['sector', 'date']);
```

Returns **[PivotTable](#pivottable)**

#### toString

Formats the DataFrame for display

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

#### show

Displays the DataFrame

#### toCSV

Exports the DataFrame as CSV

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to save (optional, default `null`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.delimiter` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Delimiter to use (optional, default `','`)

##### Examples

```javascript
df.toCSV('myAwesomeData.csv'); // to CSV
df.toCSV('myAwesomeData.tsv', { delimiter: '\t' }); // to TSV
```

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** A CSV string if `path` is not set

#### toJSON

Exports the DataFrame as JSON

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to save (optional, default `null`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.prettify` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Prettify JSON output (optional, default `true`)

##### Examples

```javascript
df.toJSON('myAwesomeData.json');
```

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** A JSON string if `path` is not set

### Series

#### Properties

- `length` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The number of values in the Series
- `empty` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether the Series contains any value or not

#### toArray

Returns the Series as an array

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>**

#### clone

Clones the Series

Returns **[Series](#series)**

#### get

Returns any row of the Series

##### Parameters

- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

##### Examples

```javascript
// Returns the value at index 4
series.get(4);
```

Returns **any**

#### first

Returns the first value of the Series

Returns **any**

#### last

Returns the last value of the Series

Returns **any**

#### find

Returns a specific value in the Series

##### Parameters

- `condition` **callback** The returned value is the first one that matches this condition

##### Examples

```javascript
// Returns the value that contains 'fast'
series.find(value => value.includes('fast'));
```

Returns **any**

#### set

Sets a value in the Series

##### Parameters

- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
- `value` **any**

##### Examples

```javascript
// Sets the 42nd value of the Series to 'Slartibartfast'
df.set(42, 'Slartibartfast');
```

#### head

Returns a new Series containing the first N values of the Series

##### Parameters

- `n` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of values to select (optional, default `5`)

##### Examples

```javascript
// Returns a new Series with the first 10 values
series.head(10);
```

Returns **[Series](#series)**

#### tail

Returns a new Series containing the last N values of the Series

##### Parameters

- `n` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of values to select (optional, default `5`)

##### Examples

```javascript
// Returns a new Series with the last 5 values
series.tail();
```

Returns **[Series](#series)**

#### slice

Returns a new Series with a slice of the original values

##### Parameters

- `start` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zero-based index at which to start extraction
- `end` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zero-based index before which to end extraction (optional, default `Series.length`)

##### Examples

```javascript
// Returns a new Series with values starting at index 10
series.slice(10);
// Returns a new Series with values between index 24 (included) and 42 (excluded)
series.slice(24, 42);
```

Returns **[Series](#series)**

#### values

Returns the values of the Series as an iterable

##### Examples

```javascript
for (let value of series.values()) {
console.log(value);
}
```

Returns **Iterable<any>**

#### items

Returns an array of index/value pairs as an iterable

##### Examples

```javascript
for (let [index, value] of series.items()) {
console.log(index, value);
}
```

Returns **Iterable<[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), any>>**

#### forEach

Applies a callback function to each value of the Series

##### Parameters

- `callback` **callback**

##### Examples

```javascript
// Displays each value of the Series
series.forEach(value => console.log(value));
```

#### map

Returns a new Series populated with the results of a callback function applied on the Series

##### Parameters

- `callback` **callback**

##### Examples

```javascript
// Double each value in the Series
series.map(value => value * 2);
```

Returns **[Series](#series)**

#### append

Appends new values to a Series

##### Parameters

- `values` **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>)** Value or array of values to append to the Series

##### Examples

```javascript
series.append([42, 101]);
```

Returns **[Series](#series)**

#### insert

Inserts new values into a Series

##### Parameters

- `values` **(any | [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>)** Value or array of values to insert into the Series
- `index` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Index to insert the values at (optional, default `0`)

##### Examples

```javascript
// Inserts value 42 at index 2 in the Series
series.insert(42, 2);
```

Returns **[Series](#series)**

#### concat

Concats another Series to the Series

##### Parameters

- `other` **[Series](#series)**
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Concatenates series1 and series2
series1.concat(series2, { inPlace: true });
```

Returns **[Series](#series)**

#### dropNA

Drops N/A values from the Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.keep` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>** Array of falsy values to keep in the Series (optional, default `[0,false]`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Drop all N/A values from the Series
series.dropNA({ inPlace: true });
// Drop all N/A values but keep empty strings
series.dropNA({ keep: [''], inPlace: true });
```

Returns **[Series](#series)**

#### dropDuplicates

Drops duplicate values from the Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
series.dropDuplicates({ inPlace: true });
```

Returns **[Series](#series)**

#### any

Returns true if any value of the series satisfies the given condition

##### Parameters

- `condition` **callback** (optional, default `!Kiwis.isNA`)

##### Examples

```javascript
// Returns true if any value is not N/A
series.any();

// Returns true if any value is greater than 42
series.any(value => value > 42);
```

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

#### all

Returns true if all values of the series satisfy the given condition

##### Parameters

- `condition` **callback** (optional, default `!Kiwis.isNA`)

##### Examples

```javascript
// Returns true if all values are not N/A
series.all();

// Returns true if all values are greater than 42
series.all(value => value > 42);
```

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

#### filter

Filters values of the Series

##### Parameters

- `filter` **callback** Callback to apply
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Only keeps values greater than 42
series.filter(value => value > 42, { inPlace: true });
```

Returns **[Series](#series)**

#### drop

Drops values from the Series

##### Parameters

- `filter` **callback** Callback to apply
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Only drops values greater than 42
series.drop(value => value > 42, { inPlace: true });
```

Returns **[Series](#series)**

#### sort

Sorts the Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the Series in descending order (optional, default `false`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Sorts the Series in descending order
series.sort({ reverse: true, inPlace: true });
```

Returns **[Series](#series)**

#### shuffle

Shuffles the values of a Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
series.shuffle({ inPlace: true });
```

Returns **[Series](#series)**

#### unique

Returns the unique values in the Series as an array

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>**

#### counts

Returns the number of occurrences for each value in the Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.sort` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the counts (optional, default `true`)
- `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the counts in descending order (optional, default `true`)

##### Examples

```javascript
// Returns the number of occurrences for each value in the Series, in ascending order
series.counts({ reverse: false });
```

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<\[any, [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)]>** Counts as an array of of value/count pairs

#### frequencies

Returns the frequency for each value in the Series

##### Parameters

- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.sort` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the frequencies (optional, default `true`)
- `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Sorts the frequencies in descending order (optional, default `true`)

##### Examples

```javascript
// Returns the frequency for each value in the Series, in ascending order
series.frequencies({ reverse: false });
```

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<\[any, [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)]>** Counts as an array of value/frequency pairs

#### round

Round the values in the Series

##### Parameters

- `digits` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Number of digits for rounding (optional, default `0`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.inPlace` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Changes the current Series instead of returning a new one (optional, default `false`)

##### Examples

```javascript
// Rounds all values in the digits to 2 decimal points
series.round(2, { inPlace: true });

// Truncates all values in the Series
series.round(0, { inPlace: true });
```

Returns **[Series](#series)**

#### reduce

Returns a single reduced value after applying the given callback to the values of the Series

##### Parameters

- `callback` **callback**
- `initial` **any** Value to use as the first argument to the first call of the callback (optional, default `Series.first()`)

##### Examples

```javascript
// Returns the sum of all values in the Series
series.reduce((acc, value) => acc + value); // Equivalent to series.sum()

// Returns the product of all values in the Series
series.reduce((acc, value) => acc * value, 1);
```

Returns **any**

#### sum

Returns the sum of the values in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### min

Returns the minimum value in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### max

Returns the maximum value in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### extent

Returns the extent of the Series

Returns **\[[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)]**

#### mean

Returns the mean of the values in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### median

Returns the median of the values in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### std

Returns the standard deviation of the values in the Series

Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

#### toString

Formats the Series for display

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

#### show

Displays the Series

#### toCSV

Exports the Series as CSV

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to save (optional, default `null`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Column name to use (optional, default `'series'`)

##### Examples

```javascript
series.toCSV('myAwesomeData.csv', { name: 'awesome' });
```

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** A JSON string if `path` is not set

#### toJSON

Exports the Series as a JSON file

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to save (optional, default `null`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Column name to use (optional, default `'series'`)
- `options.prettify` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Prettify JSON output (optional, default `true`)

##### Examples

```javascript
series.toJSON('myAwesomeData.json', { name: 'awesome' });
```

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** A JSON string if `path` is not set

### PivotTable

#### Properties

- `length` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The number of rows in the PivotTable
- `empty` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether the PivotTable contains any row or not
- `columns` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** The columns of the PivotTable, starting with the pivots

#### rollup

Applies the given callback function on the leaves of the PivotTable, returning a DataFrame

##### Parameters

- `callback` **callback**
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name to use for the column in the output DataFrame (optional, default `'data'`)

##### Examples

```javascript
// For each leaf, computes the number of rows where 'score' is greater than 3
df.pivot(['sector', 'date']).rollup(
leaf => leaf.filter(row => row.score > 3).length,
{ name: 'nbHighScores' }
);
```

Returns **[DataFrame](#dataframe)**

#### count

Counts the number of leaves for each branch of the PivotTable

##### Examples

```javascript
df.pivot(['sector', 'date']).count();
```

Returns **[DataFrame](#dataframe)**

#### sum

Computes the sum of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the sum of the column 'score'
df.pivot(['sector', 'date']).sum('score');
```

Returns **[DataFrame](#dataframe)**

#### min

Computes the minimum value of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the minimum of the column 'score'
df.pivot(['sector', 'date']).min('score');
```

Returns **[DataFrame](#dataframe)**

#### max

Computes the maximum value of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the maximum of the column 'score'
df.pivot(['sector', 'date']).max('score');
```

Returns **[DataFrame](#dataframe)**

#### mean

Computes the mean of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the mean of the column 'score'
df.pivot(['sector', 'date']).mean('score');
```

Returns **[DataFrame](#dataframe)**

#### median

Computes the median of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the median of the column 'score'
df.pivot(['sector', 'date']).median('score');
```

Returns **[DataFrame](#dataframe)**

#### std

Computes the standard deviation of a given column of the PivotTable

##### Parameters

- `column`

##### Examples

```javascript
// For each leaf, computes the standard deviation of the column 'score'
df.pivot(['sector', 'date']).std('score');
```

Returns **[DataFrame](#dataframe)**

#### toString

Formats the PivotTable for display

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

#### show

Displays the DataFrame

#### toJSON

Exports the PivotTable as JSON

##### Parameters

- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Path of the file to save (optional, default `null`)
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
- `options.prettify` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Prettify JSON output (optional, default `true`)

##### Examples

```javascript
pivotTable.toJSON('myPivotTable.json');
```

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**