Danfo.js 소개 - 데이터 조작 및 처리
20759 단어 tensorflowdanfojsplotlyjsjavascript
Danfo.js
고성능의 직관적이고 사용하기 쉬운 데이터 구조를 제공하는 오픈 소스 JavaScript 라이브러리
구조화된 데이터를 조작하고 처리합니다. PythonPandas에서 크게 영감을 받았습니다.
라이브러리와 유사한 인터페이스 및 API를 제공합니다. 또한 Danfo.js는 빠르고
Tensorflow.js 즉시 사용할 수 있는 텐서를 지원합니다.
NumPy, Pandas, sklearn 등과 같은 오픈 소스 라이브러리의 생태계 덕분에 Python에서 데이터 과학이 번창합니다.
JavaScript 커뮤니티에서 유사한 도구를 개발하는 것을 보는 것이 좋습니다. 이것은 큰 일의 시작일 수 있습니다.
이제 Danfo.js가 작동하는 모습을 살펴보겠습니다.
설치
danfo.js를 얻는 방법에는 두 가지가 있습니다. npm을 통해 설치하려면 다음을 수행하십시오.
npm install danfojs-node
아래 CDN을 사용하여 브라우저에서 설치하고 사용할 수도 있습니다.
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>
값 목록을 전달하여 Series 객체를 생성하고 danfo.js가 기본 정수 인덱스를 생성하도록 합니다.
const dfd = require("danfojs-node")
s = new dfd.Series([1, 3, 5, undefined, 6, 8])
s.print()
0
0
1
1
삼
2
5
삼
NaN
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.2825700044631958
2
-0.13752996921539307
삼
-0.8194299936294556
광장
ㅏ
0
0.21270543336868286
1
0.2613254487514496
2
0.4776192009449005
삼
0.22014862298965454
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)
Github 별
0
녹아웃.js
17
5036
1
Angular.js
106
24580
2
Ember.js
71
10368
삼
Can.js
82
928
4
React.js
123
7015
모든 숫자 열에 대한 설명 통계 계산
df.describe().print()
축소된 파일 크기(kb)
Github 별
세다
7
7
평균
58.071426
9464.286133
성병
49.75978
9038.434833
분
1
156
중앙값
71
7015
최대
123
24580
변화
2476.035714
81693304.23
데이터의 모양, 열 이름 및 dtype
console.log(df.shape);
console.log(df.column_names);
df.ctypes.print()
[ 7, 3 ]
[ 'Library', 'Minified File Size (kb)', 'Github Stars' ]
0
도서관
끈
축소된 파일 크기(kb)
float32
Github 별
int32
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
Angular.js
2
Ember.js
삼
Can.js
4
React.js
5
Backbone.js
6
Model.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);
})
다축 레이블로 선택
도서관
Github 별
0
녹아웃.js
5036
1
Angular.js
24580
슬라이싱에 의한 선택
도서관
Github 별
0
녹아웃.js
5036
1
Angular.js
24580
2
Ember.js
10368
삼
Can.js
928
쿼리별 선택
도서관
축소된 파일 크기(kb)
Github 별
1
Angular.js
106
24580
2
Ember.js
71
10368
5
Backbone.js
6.5
18167
데이터 프레임 개체에 대해 수행할 수 있는 많은 수학적 연산이 있습니다.
Danfo는 플로팅을 지원합니다
Danfo는 플로팅을 위한 백엔드로 Plotly.js을 사용합니다. 이를 통해 DataFrame 및 Series에서 대화형 플롯을 만들 수 있습니다. 플로팅은 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>
Reference
이 문제에 관하여(Danfo.js 소개 - 데이터 조작 및 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/dminor/intoduction-to-danfo-js-44j6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
danfo.js를 얻는 방법에는 두 가지가 있습니다. npm을 통해 설치하려면 다음을 수행하십시오.
npm install danfojs-node
아래 CDN을 사용하여 브라우저에서 설치하고 사용할 수도 있습니다.
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>
값 목록을 전달하여 Series 객체를 생성하고 danfo.js가 기본 정수 인덱스를 생성하도록 합니다.
const dfd = require("danfojs-node")
s = new dfd.Series([1, 3, 5, undefined, 6, 8])
s.print()
0
0
1
1
삼
2
5
삼
NaN
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.2825700044631958
2
-0.13752996921539307
삼
-0.8194299936294556
광장
ㅏ
0
0.21270543336868286
1
0.2613254487514496
2
0.4776192009449005
삼
0.22014862298965454
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)
Github 별
0
녹아웃.js
17
5036
1
Angular.js
106
24580
2
Ember.js
71
10368
삼
Can.js
82
928
4
React.js
123
7015
모든 숫자 열에 대한 설명 통계 계산
df.describe().print()
축소된 파일 크기(kb)
Github 별
세다
7
7
평균
58.071426
9464.286133
성병
49.75978
9038.434833
분
1
156
중앙값
71
7015
최대
123
24580
변화
2476.035714
81693304.23
데이터의 모양, 열 이름 및 dtype
console.log(df.shape);
console.log(df.column_names);
df.ctypes.print()
[ 7, 3 ]
[ 'Library', 'Minified File Size (kb)', 'Github Stars' ]
0
도서관
끈
축소된 파일 크기(kb)
float32
Github 별
int32
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
Angular.js
2
Ember.js
삼
Can.js
4
React.js
5
Backbone.js
6
Model.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);
})
다축 레이블로 선택
도서관
Github 별
0
녹아웃.js
5036
1
Angular.js
24580
슬라이싱에 의한 선택
도서관
Github 별
0
녹아웃.js
5036
1
Angular.js
24580
2
Ember.js
10368
삼
Can.js
928
쿼리별 선택
도서관
축소된 파일 크기(kb)
Github 별
1
Angular.js
106
24580
2
Ember.js
71
10368
5
Backbone.js
6.5
18167
데이터 프레임 개체에 대해 수행할 수 있는 많은 수학적 연산이 있습니다.
Danfo는 플로팅을 지원합니다
Danfo는 플로팅을 위한 백엔드로 Plotly.js을 사용합니다. 이를 통해 DataFrame 및 Series에서 대화형 플롯을 만들 수 있습니다. 플로팅은 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>
Reference
이 문제에 관하여(Danfo.js 소개 - 데이터 조작 및 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dminor/intoduction-to-danfo-js-44j6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)