Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/TomFevrier/kiwis
- Owner: TomFevrier
- Created: 2020-06-27T15:37:44.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-04T18:47:56.000Z (over 4 years ago)
- Last Synced: 2024-10-11T08:34:29.194Z (about 1 month ago)
- Topics: data, data-manipulation, data-wrangling, pandas
- Language: JavaScript
- Homepage:
- Size: 546 KB
- Stars: 38
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 | ArthurLength: 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)**