Danfoへの誘惑データの操作と処理



ダンフォ.js


オープンソースのJavaScriptライブラリを提供するための高性能、直感的で使いやすいデータ構造
構造化データの操作と処理それは、主にパイソンのPandasに触発されます
ライブラリと同様のインターフェイスとAPIを提供します.また、ダンフォ.JSは高速であり、それは上に構築されて
Tensorflow.jsとボックスからテンソルをサポートします.
データサイエンスは、オープンソースライブラリの生態系のためにPythonで栄えます.
JavaScriptコミュニティによって開発された同様のツールを見るのは素晴らしいです.これは大きな何かの始まりかもしれない.
それで、我々にdanfoを見させてください.インアクション.

インストール


Danfoを取得する2つの方法があります.jsNPM経由でインストールするには、次の手順を実行します.
npm install danfojs-node
また、以下のCDNを使ってブラウザでインストールして利用することもできます.
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>

値のリストを渡すことによって一連のオブジェクトを作成し、Danfoをさせる。デフォルトの整数インデックスを作成する


const dfd = require("danfojs-node")
s = new dfd.Series([1, 3, 5, undefined, 6, 8])
s.print()
0
0
1
1
3
2
5
3

4
6
5
8

JSONデータとベクトル演算の読み込み


const json_data = [{ A: 0.4612, B: 4.28283, C: -1.509, D: -1.1352 },
{ A: 0.5112, B: -0.22863, C: -3.39059, D: 1.1632 },
{ A: 0.6911, B: -0.82863, C: -1.5059, D: 2.1352 },
{ A: 0.4692, B: -1.28863, C: 4.5059, D: 4.1632 }]
df = new dfd.DataFrame(json_data)
// Adding to series object, can use sub, mul, div, and pow
df['A'].add(df['B']).print()
df['A'].pow(2).print()
// Maximum value of C
console.log(df['C'].max()) // 4.505899

AとBを加える


エー
0
4.744029998779297
1
0.2825744631958
2
- 013752999921539307
3
- 081942999362956

正方形


エー
0
0.21270543336868286
1
0.2613254487514496
2
0.4776192009449005
3
0.2201482298965454

URLからCSVファイルを読み込む


dfd.read_csv("https://raw.githubusercontent.com/curran/data/gh-pages/jsLibraries/jsLibs.csv")
.then(df => {

//prints the first five columns
df.head().print()

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

図書館
ミニファイファイルサイズ( KB )
ギタブスターズ
0
ノックアウト.js
17
5036年
1
角度.js
106
24580
2
ミーンズ.js
71
10368年
3
カン.js
82
928年
4
反応する.js
123
7015年

すべての数値列の記述統計量の計算


df.describe().print()
ミニファイファイルサイズ( KB )
ギタブスターズ
カウント
7
7
平均
58.071426
9464.286133
std
49.75978
9038.434833

1
156
メディアン
71
7015年
マックス
123
24580
分散
2476.035714
81693304.23

データ、カラム名、およびDtypesの型


console.log(df.shape);

console.log(df.column_names);

df.ctypes.print()
[ 7, 3 ]
[ 'Library', 'Minified File Size (kb)', 'Github Stars' ]
0
図書館
文字列
ミニファイファイルサイズ( KB )
float 32
ギタブスターズ
Int 32
dfd.read_csv("https://raw.githubusercontent.com/curran/data/gh-pages/jsLibraries/jsLibs.csv")
.then(df => {
df['Library'].print()
}).catch(err => {
console.log(err);
})
図書館
0
ノックアウト.js
1
角度.js
2
ミーンズ.js
3
カン.js
4
反応する.js
5
バックボーン.js
6
モデル.js

ラベルによるマルチ軸の選択,スライシングおよびクエリによる選択


dfd.read_csv("https://raw.githubusercontent.com/curran/data/gh-pages/jsLibraries/jsLibs.csv")
.then(df => {
// Selection by label
const sub_df = df.loc({ rows: [0, 1], columns: ["Library", "Github Stars"] })
sub_df.print()

// Selection by slicing
const slice_df = df.loc({ rows: ["0:4"], columns: ["Library", "Github Stars"] })
slice_df.print()

// Selection by query
const query_df = df.query({ "column": "Github Stars", "is": ">", "to": 10000 })
query_df.print()
}).catch(err => {
console.log(err);
})

多軸ラベルによる選択


図書館
ギタブスターズ
0
ノックアウト.js
5036年
1
角度.js
24580

スライスによる選択


図書館
ギタブスターズ
0
ノックアウト.js
5036年
1
角度.js
24580
2
ミーンズ.js
10368年
3
カン.js
928年

クエリによる選択


図書館
ミニファイファイルサイズ( KB )
ギタブスターズ
1
角度.js
106
24580
2
ミーンズ.js
71
10368年
5
バックボーン.js
6.5
18167年

DataFrameオブジェクトの上で実行できる多くの数学的操作があります。


Danfoサポートプロット


DanfoはプロットのためのバックエンドとしてPlotly.jsを使用しています.これは私たちの能力をDataframeとシリーズからインタラクティブなプロットをすることができます.プロットのみのDanfoのブラウザのバージョンで動作します.JSは、プロットを表示するには、HTMLのdivが必要です.
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--danfojs CDN -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>
<title>Document</title>
</head>

<body>

<div id="plot_div"></div>
<script>

dfd.read_csv("https://raw.githubusercontent.com/curran/data/gh-pages/jsLibraries/jsLibs.csv")
.then(df => {

var layout = {
title: 'JavaScript Libraries and Github Stars',
xaxis: {
title: 'Libraries',
},
yaxis: {
title: 'Stars',
}
}

new_df = df.set_index({ key: "Library" })
new_df.plot("plot_div").bar({ columns: ["Github Stars"], layout: layout })

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

</script>
</body>

</html>