nev*_*int 61 javascript python pandas
使用此CSV示例:
Source,col1,col2,col3
foo,1,2,3
bar,3,4,5
Run Code Online (Sandbox Code Playgroud)
我使用Pandas的标准方法是这样的:
解析CSV
在数据框中选择列(col1
和col3
)
col1
和的值 col3
)是否有像Pandas那样的JavaScript库?
The*_*Pea 76
所有答案都很好.希望我的答案是全面的(即尝试列出所有选项).我希望以任何标准返回并修改这个答案,以帮助做出选择.
我希望有人来这里熟悉d3
.我认为它本身是不可或缺的,无论是寻找DataFrame/Pandas的替代品.Ahmed的答案解释了如何使用d3 来实现一些DataFrame功能,下面的一些库的灵感来自于使用和的LearnJsData之类的东西.d3
pandas
至于dataframe-ish,我对选择感到不知所措.以下是您可能遇到的一些选项的快速列表.我还没有详细检查过它们(我发现组合Google + NPM搜索的最多).
小心你使用可以使用的各种; 一些是Node.js又名服务器端Javascript,一些是浏览器兼容的,也就是客户端Javascript.有些是打字稿.
然后在回答这个问题,在这里查看其他答案并进行更多搜索后,我找到了以下选项:
我希望这篇文章可以成为一个社区维基,并评估(即比较上面的不同选项)与不同的标准,如:
d3
(交互式笔记本)等结合使用进行演示JS库可能永远不会做的一些事情(但它可以吗?)
Ceaveat以下仅适用于d3 v3,不适用于最新的d4v4!
我偏爱d3.js,虽然它不会完全替代 Pandas,但如果你花一些时间学习它的范式,它应该能够为你处理所有的数据争吵。(如果你最终想要在浏览器中显示结果,它非常适合。)
例子。我的 CSV 文件data.csv
:
name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange
Run Code Online (Sandbox Code Playgroud)
在同一目录中,创建一个index.html
包含以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>My D3 demo</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script charset="utf-8" src="demo.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以及一个demo.js
包含以下内容的文件:
name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange
Run Code Online (Sandbox Code Playgroud)
在目录中,运行python -m SimpleHTTPServer 8181
并在浏览器中打开http://localhost:8181以查看年龄及其平均值的简单列表。
这个简单的例子展示了 d3 的一些相关特性:
我一直在研究JavaScript的数据处理库,称为数据伪造。它受到LINQ和Pandas的启发。
可以这样安装:
npm install --save data-forge
Run Code Online (Sandbox Code Playgroud)
您的示例将如下所示:
var csvData = "Source,col1,col2,col3\n" +
"foo,1,2,3\n" +
"bar,3,4,5\n";
var dataForge = require('data-forge');
var dataFrame =
dataForge.fromCSV(csvData)
.parseInts([ "col1", "col2", "col3" ])
;
Run Code Online (Sandbox Code Playgroud)
如果您的数据位于CSV文件中,则可以这样加载:
var dataFrame = dataForge.readFileSync(fileName)
.parseCSV()
.parseInts([ "col1", "col2", "col3" ])
;
Run Code Online (Sandbox Code Playgroud)
您可以使用该select
方法来转换行。
您可以使用提取列,getSeries
然后使用select
方法转换该列中的值。
您可以像这样从数据框中获取数据:
var data = dataFrame.toArray();
Run Code Online (Sandbox Code Playgroud)
平均一列:
var avg = dataFrame.getSeries("col1").average();
Run Code Online (Sandbox Code Playgroud)
您可以做更多的事情。
您可以在npm上找到更多文档。
下面是 Python numpy 和 pandas
``
import numpy as np
import pandas as pd
data_frame = pd.DataFrame(np.random.randn(5, 4), ['A', 'B', 'C', 'D', 'E'], [1, 2, 3, 4])
data_frame[5] = np.random.randint(1, 50, 5)
print(data_frame.loc[['C', 'D'], [2, 3]])
# axis 1 = Y | 0 = X
data_frame.drop(5, axis=1, inplace=True)
print(data_frame)
Run Code Online (Sandbox Code Playgroud)
``
同样可以在 JavaScript* 中实现 [ numjs 仅适用于 Node.js ] 但 D3.js 具有许多高级数据文件集选项。numjs 和 Pandas-js 仍在工作中。
import numpy as np
import pandas as pd
data_frame = pd.DataFrame(np.random.randn(5, 4), ['A', 'B', 'C', 'D', 'E'], [1, 2, 3, 4])
data_frame[5] = np.random.randint(1, 50, 5)
print(data_frame.loc[['C', 'D'], [2, 3]])
# axis 1 = Y | 0 = X
data_frame.drop(5, axis=1, inplace=True)
print(data_frame)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33327 次 |
最近记录: |