问题标签 [deedle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
977 浏览

map - 映射到 Deedle 框架

我正在学习 F#。我正在尝试将 a 转换Map<string, seq<DateTime * float>>为 Deedle 数据框(http://bluemountaincapital.github.io/Deedle/tutorial.html#creating)。

我已经准备了以下代码:

mapToDeedleFrame使用现有框架折叠地图。文件夹功能folderFnct

  • 取帧
  • 使用 Map 键作为框架中的列名,并且
  • 处理这些值 ( <DateTime * float>),使其成为一系列。

问题在于:

在哪里:

未定义字段、构造函数或成员“Join”

我已经确定了该问题的三个潜在原因:

  1. 为什么aFrame.Join没有定义?我尝试明确指定的类型aFrame
  2. 我怎样才能喂到mapToDeedleFrame一个的框架?
  3. 我应该在为空folderFnct的情况下进行模式匹配吗?aFrame

非常感谢!

编辑 1

根据 Tomas 的建议,这就是我到目前为止所做的。

缺少的最后一步是:我如何快速将一个空框架(也许避免创建一个虚拟框架)传递给mapToDeedleFrame?我已经尝试[]

这可能是一个愚蠢的问题,但我是 F# 的新手,我想知道Empty该语言中是否有内置类型。

跟进问题

在我阅读的源文件中(https://github.com/BlueMountainCapital/Deedle/blob/master/src/Deedle/Frame.fs):

而在屏幕上弹出的功能描述中:

印刷丝网

从上图中我猜想 Frame 的类型与 colKey 相同,而据我了解,colKey 只是通过意式连接添加的数据框列的键。作为一个完整的菜鸟,我很困惑..

编辑 2

我重写了代码:

问题是:

返回 frame 作为 Frame,而 seriesList 是(string *Series<DateTime, float>) list

我认为问题在于:

实际上seriesListMapper表示为

我不明白这些值如何以及为什么转换为stringfrom float

一件有趣的事情是,绘制框架frame.Format()实际上证实了数据看起来是正确的。只是这种“奇怪”的转换为string.

0 投票
1 回答
722 浏览

f# - Deedle - 创建空列表和系列

我是 F# 的新手,将其视为 Matlab 的替代品。

关于这个问题,我怎样才能创建一个空的 Serie 和一个空的 Frame。如果我没有错过它,为什么图书馆没有设计一个空的 Serie 或 Frame,比如list.empty

0 投票
1 回答
229 浏览

f# - 如何在 Deedle 中创建反应式数据帧(填充流数据)?

我想创建一个包含流数据的数据框。这是如何在 Deedle 中完成的?

事先不知道数据行的数量,因此我想创建类似 Rx 流的东西。

0 投票
1 回答
489 浏览

lambda - 绘制 Deedle 框架

我有以下代码:

哪里frame.GetAllSeries()返回一个seq<KeyValuePair>。我想直接在图表中管道序列。我想我可以遍历这个序列。问题是我找不到一种惯用的方法来分别访问可以直接插入 lambda 表达式的键和值。

谢谢。

编辑

这有效:

..它可以变得更简单吗?我有一个大型数据集,我担心性能会受到如此多的转换的影响。

0 投票
1 回答
373 浏览

f# - 从 Deedle 中提取行并转换为矩阵

我正在尝试从 Deedle 中提取一行Frame并将其转换为 flat (1x4) DenseMatrix。所有缺失值都已删除,并且 中的值Frame是数字。

我的代码:

产生错误:

错误 FS0192:内部错误:convMethodRef:无法绑定到方法

有趣的是还要注意:

产生相同的错误。

我已使用 .Net 4.5.50709 更新到 11.0.061030.00(更新 4),但仍然面临同样的问题。

0 投票
1 回答
402 浏览

f# - Deedle - 如何通过切片选择行?

我想根据多行的值比较选择一些行。

说数据框(df)是这样的:

我想得到 col["two"] >= 5 和 col["four"] <=11 的行。这可以简单地在 python 中使用 pandas 完成,例如:

如何在 F# 中使用 Deedle 执行此操作?

谢谢!

0 投票
1 回答
442 浏览

r - Deedle 框架到 R

我正在尝试使用一些代码。我使用rinterop作为参考。

我有一个Frame<DateTime,string>我尝试发送到 R 使用

这给出了以下内容:

System.Exception:没有为类型 Deedle.Series`2 [[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089] 注册转换器,

我还尝试了以下示例:

导致相同类型的错误:

System.Exception:没有为类型 Deedle.Series`2[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 或其任何基本类型

我的最终目标是绘制 Deedle 框架,并DateTime使用 R 作为行键。

0 投票
3 回答
681 浏览

f# - 我可以对 Deedle 框架进行分类吗?

据我所知,Deedle 框架仅按索引排序。有没有办法应用自定义排序功能或按给定系列排序(并定义升序/降序)?

0 投票
1 回答
239 浏览

matrix - 数据框 - 转换为矩阵时的顺序一致性

我有一个Deedle Frame<DateTime,string>。这些列包含float值并且是密集的(没有缺失值)。

我需要从一个string []然后构建数据框:

  • Matrix使用整个数据构建 2D
  • 构建一个 Series Series<DateTime,Matrix<float,CpuLib>>,折叠1xn矩阵中的行

就我而言,我正在试验 StatFactory 的FCore,但将来我可能会使用另一个线性代数库。

我担心的是我需要确保在此过程中不会更改行和列的顺序。

数据框构建

我使用以下方法获取数据。我注意到列的顺序与代码的初始列表不同。这是为什么?请问使用Array.Parallel.Map改变命令?

数据框到二维矩阵

为了构建矩阵,我使用下面的代码。列名数组 ( selectedCols) 上的映射可确保列的顺序不会移动。我使用行的顺序运行单元测试Array.Map,一切看起来都很好,但我想知道

  • 如果库中有一致性检查可以确保我不会遇到问题?
  • 我想Array.Parallel.map会保留列的顺序。

这是代码:

数据帧到行矩阵的时间序列

我使用下面的代码构建行矩阵的时间序列。

  • 将数据保存在 Series 中应确保保留行的顺序。
  • 如何过滤列并确保列顺序与传递给函数的列名数组中的顺序完全相同?

这是代码:

非常感谢。

PS:我将所有三个场景放在一起,因为我相信上面的三个示例会更好地帮助其他用户和我自己理解库的工作原理,而不是单独讨论每个案例。

0 投票
1 回答
1304 浏览

sql - F#: How to create a Deedle Frame with SQL data source

I am trying to figure what is the best way in F# to create a Deedle Frame, when the data comes from an SQL server. I have tried things like the following.

and a few other variants. But without luck. I am new to both F# and Deedle for that matter. I can see why the above does not work (the Frame.ofRows is not compatible with the argument) but I don't know what is the best way to proceed (or even how to proceed).