Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
5a524c8
Set up typescript base config in danfojs-node
risenW Jun 27, 2021
bd299e4
Set up typescript base config in danfojs-browser
risenW Jun 27, 2021
fa5e92b
Delete dist folder
risenW Jul 3, 2021
de580e3
Remove old folder structure
risenW Jul 3, 2021
f8810bf
Refactor utils and config classes to typescript
risenW Jul 3, 2021
be69369
Deleted old types folder
risenW Jul 3, 2021
700ba3c
Add tests for utils and configs
risenW Jul 3, 2021
c9c4923
Remove old tests folder
risenW Jul 3, 2021
b23d931
Update package build command
risenW Jul 6, 2021
45af19e
Refactor types in type file
risenW Jul 6, 2021
19f3353
Add error throwing file
risenW Jul 6, 2021
b894a0f
Started refactor of generic class and tests to typescript
risenW Jul 6, 2021
0e1abeb
Update config parameters adn add new array type
risenW Jul 8, 2021
43f7c27
Update generic class and tests with new functions
risenW Jul 8, 2021
a8ddd7c
Set up dev config
risenW Jul 9, 2021
ab4352b
Rewrite and refactor Series iloc function and test in typescript
risenW Jul 9, 2021
cbd8217
Temporarily comment out test cmd for danfojs-browser
risenW Jul 9, 2021
d92bef1
Seperate test into different folder and update test script cmd
risenW Jul 13, 2021
365ad71
Fix test compile issue and add test for Series
risenW Jul 13, 2021
685382e
Update root test command
risenW Jul 13, 2021
04a7bed
Update gitignore
risenW Jul 13, 2021
9d5aeef
Update build and test command
risenW Aug 1, 2021
d840ddf
Add new types
risenW Aug 1, 2021
fc71c30
Reorganize folder and file structure
risenW Aug 1, 2021
5856090
Update type declaration and use
risenW Aug 1, 2021
d97f976
Add support for creating empty NDFrames
risenW Aug 13, 2021
546634b
Convert and optimize more Series methods to typescript
risenW Aug 13, 2021
4a726e5
Clean and update types
risenW Aug 13, 2021
fe3349e
Add function to properly mutate row data inplace
risenW Aug 14, 2021
38e6743
Seperate math ops to use tfjs or plain js
risenW Aug 14, 2021
ca5d850
Add new tests for Series math ops
risenW Aug 14, 2021
9dbf2ef
Update math ops and add new methods
risenW Aug 14, 2021
17c0c44
Complete all Series method conversion to typescript
risenW Aug 15, 2021
55b72d8
Convert strings class to TS
risenW Aug 15, 2021
f056337
Add date time class and update dt accessor in Series
risenW Aug 25, 2021
31ab570
Add Date time test to series
risenW Aug 25, 2021
952c702
Add iloc for DataFrame class
risenW Aug 25, 2021
dd90bd1
Add iloc for DataFrame and fix subsetting bug
risenW Aug 27, 2021
1babbc0
Update typescript version to latest
risenW Aug 28, 2021
5f38967
Add loc based indexing for series and DataFrame
risenW Aug 28, 2021
c870b4a
Add printing to console function for DataFrame
risenW Aug 28, 2021
5d8d5af
Clean up and comment added
risenW Aug 28, 2021
a71c3cf
Add dropNa and basic mean function in DataFrame
risenW Aug 29, 2021
3d72af0
Update generic to not replace undefined and nulls on NDframe creation
risenW Aug 30, 2021
4be9ff9
Convert mean, mode, max, min, var, std and dropNa functions
risenW Aug 30, 2021
d090588
Set up ts env for danfo-browser and move converted files here
risenW Sep 3, 2021
b19a1ef
Clean up and re-arrange test file structure
risenW Sep 3, 2021
82dcd2f
Clean up and re-arrange core file structure
risenW Sep 3, 2021
5d0647e
Set up test script lcoally and in Github CI
risenW Sep 3, 2021
99990c9
Add backend support for setting tensorflow lib to use
risenW Sep 4, 2021
998f59d
Add support of arrays in math ops
risenW Sep 4, 2021
4105609
Clean up
risenW Sep 4, 2021
2c165ec
Add addColumn function to DataFrame
risenW Sep 4, 2021
a42d836
convert and optimize count, fillNa, isNa, describe and copy functions
risenW Sep 5, 2021
5c52f06
Update types
risenW Sep 5, 2021
5fdbd3d
Add tests for new functions
risenW Sep 5, 2021
b5f0036
Change columnNames param to columns
risenW Sep 7, 2021
1f94f72
Convert and optimize drop method in frame
risenW Sep 7, 2021
55c9519
Convert and add new functions
risenW Sep 10, 2021
2788f85
Add And and OR logical comparison to Series
risenW Sep 11, 2021
244ef23
convert logical ops, sum, abs and transpose
risenW Sep 11, 2021
169074f
Update param type definition
risenW Sep 12, 2021
c9a3cdd
Convert replace method
risenW Sep 12, 2021
8ad2e69
Convert append, rename, sortIndex, asType methods in frame
risenW Sep 15, 2021
7192fa0
Minor update on series uniqe method
risenW Sep 15, 2021
b9d9d39
Convert ctypes, query, cumulative ops to TS
risenW Sep 18, 2021
d88ab75
Add readCSV and streamCSV functions for lcoal and remote files
risenW Sep 18, 2021
d5e2584
Add test csv files
risenW Sep 18, 2021
f8d3996
Update types and perform basic file clean up
risenW Sep 19, 2021
5221caa
Add io functions for CSV files using papaparse as base
risenW Sep 19, 2021
499859e
Add streaming, transformer functions for CSV files
risenW Sep 19, 2021
af09300
Add readJSON function for local and remote files
risenW Sep 19, 2021
3fd69ae
Update csv reader docstring
risenW Sep 19, 2021
edbf87e
Add toJSON function with config options
risenW Sep 19, 2021
e1b298c
Add streamJSON support for remote and local storage
risenW Sep 19, 2021
28d7bbe
Add Excel file reader and writer
risenW Sep 20, 2021
488cce8
Add local file writers for csv and json
risenW Sep 20, 2021
67a4fd5
Add io methods to NDFrame class
risenW Sep 20, 2021
b7dee35
Update doc strings
risenW Sep 20, 2021
b057914
Convert Standard and MinMax scalers
risenW Sep 20, 2021
3a92684
Organize test files and folders
risenW Sep 22, 2021
851d8c6
Convert LabelEncoder and add new methods
risenW Sep 22, 2021
3424d0f
Add fitTransform and inverseTransform to scalers
risenW Sep 22, 2021
ba5fea4
Update encoder and scaler docstrings
risenW Sep 22, 2021
0d748e2
Convert dummy encoder
risenW Sep 22, 2021
e5392fa
Add getDummies to Series and DataFrame
risenW Sep 22, 2021
54aeb62
Add examples in docstrings for io functions
risenW Sep 22, 2021
52dfa4a
Add examples in docstrings for str and dt classes
risenW Sep 22, 2021
ff67e54
Move base modules from node for browser folder
risenW Sep 23, 2021
0d612e9
Add test for encoders and scalers
risenW Sep 23, 2021
8f5b638
Update imports
risenW Sep 23, 2021
9215a48
Update parameter order in io stream function
risenW Sep 23, 2021
d398b1a
Add readCSV for danfo-browser
risenW Sep 23, 2021
4265b10
Update gitignore
risenW Sep 23, 2021
efc7204
Add readExcel and toExcel functions in browser
risenW Sep 23, 2021
5b0bf32
Add readJSON and toJSON in browser version
risenW Sep 23, 2021
0d1f380
Fix toJSON bug
risenW Sep 23, 2021
c977ee6
Update output folder name
risenW Sep 23, 2021
21238eb
Update tsconfig
risenW Sep 23, 2021
6326c8d
Update typings and tsconfig to generate type on build
risenW Sep 24, 2021
ebad04b
Update typings and tsconfig to generate type on build for browser
risenW Sep 24, 2021
7ee2c36
Clean up
risenW Sep 24, 2021
21aeb69
Update webpack cmd
risenW Sep 24, 2021
b6f3f8a
Update apply map func
risenW Sep 25, 2021
2cb7aac
Update apply map func in danfo-browser
risenW Sep 25, 2021
3bdc622
Add public helper method to retrieve column data
risenW Sep 26, 2021
6393667
[concat.js][L]: implement concat basically for Dataframe.
steveoni Sep 26, 2021
188695e
[index.js][s]: add concat to list of imported modules
steveoni Oct 2, 2021
6b802ef
[concat.js][m]: update concate to accommodate series
steveoni Oct 2, 2021
f9df7c5
[concat.test.ts][l]: add test for concat
steveoni Oct 2, 2021
bf2b959
[index.js][s]: add concat to list of browser exported modules
steveoni Oct 2, 2021
e8b2c5b
[concat.js][l]: add cocnat module to browser version
steveoni Oct 2, 2021
fa3c93b
[concat.test.js][l]: add test for concat module
steveoni Oct 2, 2021
821c813
[merge][l]: initial implementation of merge operation
steveoni Oct 10, 2021
e0e63dd
[merge][m]: add detailed documentation to merge operation
steveoni Oct 11, 2021
2d19596
[index.js][s]: add merge to the list exported modules
steveoni Oct 11, 2021
b089c12
Update tests
risenW Oct 15, 2021
f9437a0
Add function overloads
risenW Oct 15, 2021
2409d23
Move source code into new src folder
risenW Oct 15, 2021
bf84bd8
Refactor danfojs-node to use new shared base
risenW Oct 15, 2021
387fbac
Update base folder name
risenW Oct 16, 2021
6ff001f
Refactor danfojs-node and danfojs-browser to use same base (danfojs-n…
risenW Oct 16, 2021
b4f4ba2
Add prebuild script and update readme
risenW Oct 16, 2021
ef5c769
Update script cmd in package.json
risenW Oct 16, 2021
4978b58
Merge pull request #300 from opensource9ja/ref/base
risenW Oct 16, 2021
6d0ce55
Merge
steveoni Nov 20, 2021
5f52142
update yarn
steveoni Nov 28, 2021
7f88a19
[browser][s]: update package.json
steveoni Nov 28, 2021
6607029
[node/merge][l]: add test for merge
steveoni Nov 28, 2021
d720988
[browser/merge][l]: add test for merge
steveoni Nov 28, 2021
8345e01
re-implementing Groupby.js
steveoni Dec 5, 2021
eda783e
implement col for groupby
steveoni Dec 11, 2021
827ada1
Add group arithmetic operations
steveoni Dec 12, 2021
eb1d10a
update types and indexing in groupby
steveoni Dec 12, 2021
d1fdc64
Clean up folders
risenW Dec 14, 2021
3064b5a
Add plotly package and type
risenW Dec 14, 2021
35f8f17
Started implementing plotting module
risenW Dec 14, 2021
1ae6120
Add plotly package and loader in webpack
risenW Dec 14, 2021
27b253b
Make option param in readCSV optional
risenW Dec 14, 2021
e4c7e65
add arithmetic methods to groupby
steveoni Dec 16, 2021
fc48214
Merge branch 'danfo/typescript' of https://github.com/opensource9ja/d…
steveoni Dec 16, 2021
5eeb23e
rename groupby arithmetic operation column
steveoni Dec 16, 2021
56803dc
add get_groups and agg method to groupby
steveoni Dec 20, 2021
eef1c48
update groupby.apply method
steveoni Dec 21, 2021
51674c3
implement common groupby accessories function
steveoni Dec 21, 2021
4d73772
update groupby method
steveoni Dec 22, 2021
6df08c8
remove console.log
steveoni Dec 22, 2021
c18ea63
add method to enable proper ordering
steveoni Dec 23, 2021
96b8c58
add test for groupby
steveoni Dec 23, 2021
1e7f997
Add seedrandom tfjs dependency to package.json
risenW Dec 28, 2021
c2067ce
Refactor Plotting class to support different plotting libraries and c…
risenW Dec 28, 2021
5acef6a
Merge branch 'danfo/typescript' of https://github.com/javascriptdata/…
risenW Dec 28, 2021
a126baa
update addColumn to include `atIndex`
steveoni Dec 29, 2021
0d7406b
update addColumn types
steveoni Dec 29, 2021
6c1d90a
update frame test to validate adding new column at any column index
steveoni Dec 29, 2021
c07f100
Merge branch 'danfo/typescript' of https://github.com/opensource9ja/d…
steveoni Dec 29, 2021
9d8c6fb
update groupby concatGroups to make use of atIndex in addColumn
steveoni Dec 29, 2021
def7660
update groupby test
steveoni Dec 29, 2021
e88c12e
Complete plotting class refactor to typwscript
risenW Dec 29, 2021
a998287
Merge branch 'danfo/typescript' of https://github.com/javascriptdata/…
risenW Dec 29, 2021
7b2f624
Merge branch 'danfo/typescript' of https://github.com/opensource9ja/d…
steveoni Dec 29, 2021
d5d14af
add groupby test for browser version
steveoni Dec 29, 2021
82518c0
rename groupby test to .ts
steveoni Dec 29, 2021
a364386
add documentation to the major internal implementation of groupby met…
steveoni Dec 30, 2021
95609fc
Fix test folder structure and typing
risenW Dec 31, 2021
db2c983
Update Github CI test
risenW Dec 31, 2021
d105542
Update package.json test command
risenW Dec 31, 2021
c16c08b
Fix breaking CI test for pow method
risenW Dec 31, 2021
d0c254f
Fix breaking CI test for pow method
risenW Dec 31, 2021
8fc1ca5
Add version number to export
risenW Jan 2, 2022
64597e1
Reduce default displayed column size in toString
risenW Jan 2, 2022
df89bf9
Set header to true as default in readCSV
risenW Jan 2, 2022
0707618
update args type
steveoni Jan 3, 2022
1bed8ee
Update dropNa axis order
risenW Jan 4, 2022
ef3a3b4
Update type defs
risenW Jan 4, 2022
4c09ff0
Temporarily change name to include nightly for test
risenW Jan 4, 2022
251f275
implement date_range
steveoni Jan 4, 2022
09da26d
export daterange as a function
steveoni Jan 5, 2022
84f8e97
add test for daterange
steveoni Jan 5, 2022
44d7ba3
import date_range
steveoni Jan 5, 2022
ea14239
add browser test for date_range
steveoni Jan 5, 2022
5a02511
import date_range in the browser
steveoni Jan 5, 2022
d9f0ee6
Merge branch 'danfo/typescript' of https://github.com/opensource9ja/d…
steveoni Jan 5, 2022
b75cc01
Refactor app to use single folder and share types
risenW Jan 7, 2022
b1f0c42
Add dynmaic import for plotly lib
risenW Jan 7, 2022
75a4716
Merge branch 'danfo/typescript' of https://github.com/javascriptdata/…
risenW Jan 7, 2022
55c7ad8
Export tensorflow lib
risenW Jan 7, 2022
ed951d8
Fix line plot index value
risenW Jan 7, 2022
89b754f
Update ReadMe
risenW Jan 7, 2022
250b8b2
Fixed subsetting bug after rename
risenW Jan 7, 2022
4946aa9
Add new test for query method
risenW Jan 7, 2022
98383d0
Update docstrings with examples in frame
risenW Jan 7, 2022
d95e6bf
Update docstrings with examples
risenW Jan 8, 2022
e983b14
add column as atIndex
steveoni Jan 8, 2022
55778ce
add test for addcolumn
steveoni Jan 8, 2022
4b8c1fd
update types: enable column names to be parsed into atIndex in addcolumn
steveoni Jan 8, 2022
a8ae166
add docstring
steveoni Jan 8, 2022
2e544db
update date_range to dateRange and add docstring
steveoni Jan 8, 2022
3effc68
add docstring
steveoni Jan 8, 2022
6b5e3c0
update date_range name
steveoni Jan 8, 2022
3dead3b
Merge branch 'danfo/typescript' of https://github.com/opensource9ja/d…
steveoni Jan 8, 2022
f635944
add parseInt to ensure 0 is not parsed as string even after casting
steveoni Jan 8, 2022
868b065
Update docstrings with examples
risenW Jan 8, 2022
759b594
Merge branch 'danfo/typescript' of https://github.com/javascriptdata/…
risenW Jan 8, 2022
1e35153
Update docstrings and Readme
risenW Jan 8, 2022
23f3af4
Update gitignore
risenW Jan 8, 2022
95592e5
Temporarily update version num
risenW Jan 8, 2022
985e9ae
Fix fillNa o fill bug
risenW Jan 9, 2022
86ecf62
Temporarily update version number
risenW Jan 9, 2022
ec268de
Update docstring for io functions
risenW Jan 10, 2022
b0b8e9b
Fix bug in label encoder transformer
risenW Jan 10, 2022
ee93342
Update plot config
risenW Jan 12, 2022
9813a93
Update method name in groupby to camel case
risenW Jan 12, 2022
eb2ed39
Update package version and name to latest
risenW Jan 12, 2022
0a67cff
Add support for passing frame config to io functions
risenW Jan 12, 2022
b5c6699
Update ReadMe
risenW Jan 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ name: Node.js CI

on:
push:
branches: [ master ]
branches: [ master, dev, danfo/typescript ]
pull_request:
branches: [ master ]
branches: [ master, dev ]

jobs:
test:
Expand All @@ -16,15 +16,12 @@ jobs:

strategy:
matrix:
node-version: [10.x, 12.x, 14.x]
node-version: [12.x, 14.x]

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: cd danfojs-node && yarn
- run: cd danfojs-node && yarn test
- run: cd danfojs-browser && yarn
- run: cd danfojs-browser && yarn test
- run: yarn test
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
.editorconfig
node_modules
node_modules
test/fixtures/*
test/samples/*
*.xlsx
169 changes: 96 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,145 +47,168 @@ easy and intuitive. It is heavily inspired by [Pandas](https://pandas.pydata.org
- Robust data preprocessing functions like [OneHotEncoders](https://danfo.jsdata.org/api-reference/general-functions/danfo.onehotencoder), [LabelEncoders](https://danfo.jsdata.org/api-reference/general-functions/danfo.labelencoder), and scalers like [StandardScaler](https://danfo.jsdata.org/api-reference/general-functions/danfo.standardscaler) and [MinMaxScaler](https://danfo.jsdata.org/api-reference/general-functions/danfo.minmaxscaler) are supported on DataFrame and Series


## Installation
There are three ways to install and use Danfo.js in your application
* For Nodejs applications, you can install the [__danfojs-node__]() version via package managers like yarn and/or npm:

To use Danfo.js via script tags, copy and paste the CDN below to the body of your HTML file
```bash
npm install danfojs-node

or

yarn add danfojs-node
```
For client-side applications built with frameworks like React, Vue, Next.js, etc, you can install the [__danfojs__]() version:

```bash
npm install danfojs

or

yarn add danfojs
```

For use directly in HTML files, you can add the latest script tag from [JsDelivr](https://www.jsdelivr.com/package/npm/danfojs) to your HTML file:
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.0.0/lib/bundle.min.js"></script>

```html
<script src="https://cdn.jsdelivr.net/npm/danfojs@0.2.7/lib/bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.0.0/lib/bundle.min.js"></script>
```
See all available versions [here](https://www.jsdelivr.com/package/npm/danfojs)

### Example Usage in the Browser

> See the example below in [Code Sandbox](https://codepen.io/risingodegua/pen/bGwPGMG)
> Run in [Code Sandbox](https://codepen.io/risingodegua/pen/bGwPGMG)

```html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.plot.ly/plotly-1.2.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/danfojs@0.2.7/lib/bundle.min.js"></script>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.0.0/lib/bundle.min.js"></script>

<title>Document</title>
</head>

<body>
</head>

<body>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>

<script>

dfd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")
.then(df => {

df['AAPL.Open'].plot("div1").box() //makes a box plot
dfd.readCSV("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")
.then(df => {

df.plot("div2").table() //display csv as table
df['AAPL.Open'].plot("div1").box() //makes a box plot

new_df = df.set_index({ key: "Date" }) //resets the index to Date column
new_df.plot("div3").line({ columns: ["AAPL.Open", "AAPL.High"] }) //makes a timeseries plot
df.plot("div2").table() //display csv as table

}).catch(err => {
console.log(err);
})
new_df = df.setIndex({ column: "Date", drop: true }); //resets the index to Date column
new_df.head().print() //
new_df.plot("div3").line({
config: {
columns: ["AAPL.Open", "AAPL.High"]
}
}) //makes a timeseries plot

}).catch(err => {
console.log(err);
})
</script>

</body>

</body>
</html>

```

Output in Browser:

![](assets/browser-out.gif)

## How to install
Danfo.js is hosted on NPM, and can installed via package managers like npm and yarn

```sh
npm install danfojs-node
```

### Example usage in Nodejs

```javascript

const dfd = require("danfojs-node")

const file_url = "https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv"
dfd.readCSV(file_url)
.then(df => {
//prints the first five columns
df.head().print()

// Calculate descriptive statistics for all numerical columns
df.describe().print()

dfd.read_csv("https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv")
.then(df => {
//prints the first five columns
df.head().print()
//prints the shape of the data
console.log(df.shape);

//Calculate descriptive statistics for all numerical columns
df.describe().print()
//prints all column names
console.log(df.columns);

//prints the shape of the data
console.log(df.shape);
// //prints the inferred dtypes of each column
df.ctypes.print()

//prints all column names
console.log(df.column_names);
//selecting a column by subsetting
df['Name'].print()

//prints the inferred dtypes of each column
df.ctypes.print()
//drop columns by names
cols_2_remove = ['Age', 'Pclass']
df_drop = df.drop({ columns: cols_2_remove, axis: 1 })
df_drop.print()

//selecting a column by subsetting
df['Name'].print()

//drop columns by names
cols_2_remove = ['Age', 'Pclass']
df_drop = df.drop({ columns: cols_2_remove, axis: 1 })
df_drop.print()
//select columns by dtypes
let str_cols = df_drop.selectDtypes(["string"])
let num_cols = df_drop.selectDtypes(["int32", "float32"])
str_cols.print()
num_cols.print()


//select columns by dtypes
let str_cols = df_drop.select_dtypes(["string"])
let num_cols = df_drop.select_dtypes(["int32", "float32"])
str_cols.print()
num_cols.print()
//add new column to Dataframe

let new_vals = df['Fare'].round(1)
df_drop.addColumn("fare_round", new_vals, { inplace: true })
df_drop.print()

//add new column to Dataframe
let new_vals = df['Fare'].round().values
df_drop.addColumn({ column: "fare_round", value: new_vals})
df_drop.print()
df_drop['fare_round'].round(2).print(5)

df_drop['fare_round'].print(5)
//prints the number of occurence each value in the column
df_drop['Survived'].valueCounts().print()

//prints the number of occurence each value in the column
df_drop['Survived'].value_counts().print()
//print the last ten elementa of a DataFrame
df_drop.tail(10).print()

//print the last ten elementa of a DataFrame
df_drop.tail(10).print()
//prints the number of missing values in a DataFrame
df_drop.isNa().sum().print()

//prints the number of missing values in a DataFrame
df_drop.isna().sum().print()
}).catch(err => {
console.log(err);
})

}).catch(err => {
console.log(err);
})

```
Output in Node Console:

![](assets/node-rec.gif)

> If you want to use Danfo in frontend frameworks like React/Vue, read this [guide](https://danfo.jsdata.org/examples/using-danfojs-in-react)

#### You can play with Danfo.js on Dnotebooks playground [here](https://playnotebook.jsdata.org/demo)
## Notebook support
* You can use Danfo.js on Dnotebooks playground [here](https://playnotebook.jsdata.org/demo)
* VsCode nodejs notebook extension now supports Danfo.js. See guide [here](https://marketplace.visualstudio.com/items?itemName=donjayamanne.typescript-notebook)

#### [See the Official Getting Started Guide](https://danfo.jsdata.org/getting-started)

## Documentation
The official documentation can be found [here](https://danfo.jsdata.org)

## Danfo.js Official Book

![image](https://user-images.githubusercontent.com/29900845/134811659-25ff6b05-8e0d-415f-a60c-03ab1d33fd71.jpeg)


We recently published a book titled "Building Data Driven Applications with Danfo.js". Read more about it [here](https://danfo.jsdata.org/building-data-driven-applications-with-danfo.js-book)

## Discussion and Development
Development discussions take place [here](https://github.com/opensource9ja/danfojs/discussions).

Expand All @@ -196,4 +219,4 @@ All contributions, bug reports, bug fixes, documentation improvements, enhanceme

#### Created by [Rising Odegua](https://github.com/risenW) and [Stephen Oni](https://github.com/steveoni)

<a href="https://www.producthunt.com/posts/danfo-js?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-danfo-js" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=233871&theme=light" alt="Danfo.js - Open Source JavaScript library for manipulating data. | Product Hunt Embed" style="width: 250px; height: 54px;" width="250px" height="54px" /></a>
<a href="https://www.producthunt.com/posts/danfo-js?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-danfo-js" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=233871&theme=light" alt="Danfo.js - Open Source JavaScript library for manipulating data. | Product Hunt Embed" style="width: 250px; height: 54px;" width="250px" height="54px" /></a>
3 changes: 0 additions & 3 deletions danfojs-browser/lib/bundle.js

This file was deleted.

Loading