问题标签 [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 回答
354 浏览

f# - 基于 Deedle Row 的计算

我正在尝试使用 Deedle 进行一些基于行的计算。但是大多数示例都是基于列的。例如我有这个简单的结构:

我想计算可乐和可乐的平均值。如果我做

我知道我可以匹配每一列来处理平均值,但是如果有很多列,这将不切实际。

f1.Rows 返回的每一行都是一个 ObjectSeries 可以将其转换为浮点系列并将 stats.mean 应用于一行吗?

谢谢卡比

更新:

我想我可能已经找到了一种方法来做到这一点(参考:https ://github.com/BlueMountainCapital/Deedle/issues/100 ):

折叠操作:

意思是(它正确地跳过了缺失值):

数数:

如果有不同的方法,请告诉我。希望这对像我这样的新人有用。

0 投票
2 回答
131 浏览

f# - 不变与否?Deedle帧过滤

这个问题可能看起来有点微不足道,它确实发生在我们的过程中,因为数据不干净。我有一个数据框看起来像

我需要过滤掉任何行,直到第一行的值在 colb

我能想出的唯一解决方案是使用一个可变标志,它破坏了函数式编程的完整性。也许这个过滤缺失的头可以隐藏在库中。但这仍然让我怀疑我是否没有以正确的方式做到这一点。

这实际上并不是 Deedle 的问题,而是更多地与不变性应如何实现这一点有关。在 Python 和 VBA 中很容易实现的东西在 F# 中似乎很难做到。

在这样的统计计算情况下,多个系列有不同的开始时间。在起点(保留)之后,包含缺失值的数据点很重要,因为缺失值意味着什么。

任何建议表示赞赏。卡斯比

0 投票
0 回答
130 浏览

c# - C# Deedle.Rplugin R Dataframe 到 Deedle.Frame

我正在尝试从RdotnetC# 环境中读取数据帧,Deedle.Frame而不必具体说明 TypesTRowKeyTColumnKey,因为动态我可能不知道类型。

我试过了

为了将其转换为 Frame,我尝试了-

但这不起作用,因为GenericArguments()无法访问。您能否建议一种方法来实现这一点,而不必使用特定的 Deedle.Rplugin 类DataFrameStringStringFromR,例如DataFrameIntStringFromR等...?

最终,我想在 datagridview 中显示 R 数据框,而不使用循环。

谢谢你。

0 投票
1 回答
1851 浏览

c# - 如何使用 Deedle(帧输入和帧输出)执行基于行的过程

我正在尝试使用 Deedle 在 DataFrame 上执行基于行的过程。但我就是无法让我的思想适应 Deedle 的方式。

说一个像这样的框架

假设需要对每个指标应用一些规则:

  1. 如果指标值小于 500 且大于 0,则乘以 1.1
  2. 如果指标值小于 0,则设为 NaN

我一直在尝试使用Frame.mapRow....函数。

我知道我可以使用

Frame.mapRow....

但我被困在如何使newIndValnewIndVal2回到一行并最终回到一个新的数据框。

我想要实现的是一个框架和框架。另外我只知道一一处理列(在通过索引或名称检索它们之后)。如果要应用的逻辑是通用的,有没有办法不逐列应用逻辑?

使用 C 或 C# 2d 数组执行此操作的命令式(并且非常简单)方法是

如何在 Deedle 中实现这一点?

更新:

如果计算不需要引用同一行的其他列,Leaf Garland 的建议非常有效。就我而言,我需要逐行查看数据,因此我想使用 Frame.mapRows。我应该对简化的要求很清楚:

说一个像这样的框架

例如,如果指标 1 小于 300,则指标 2 的新值为指标 2 + 5% * 指标 1

我需要使用

上面的伪代码听起来很简单,但我只能弄清楚如何重现正确的 objectSeries 来重新创建 Frame。

我还注意到一些我无法用 mapRows 函数解释的东西 [SO question]:Deedle Frame.mapRows 如何正确使用它以及如何正确构建对象系列

更新

自从发布了原始问题以来,我就在 C# 中使用了 Deedle。令我惊讶的是,在 C# 中基于行的计算非常简单,并且 C# Frame.rows 函数处理缺失值的方式与 F# mapRows 函数非常不同。以下是我用来尝试验证逻辑的一个非常基本的示例。它可能对任何正在搜索类似应用程序的人有用:

需要注意的是: 1. rows 函数没有删除行,而两列的值都丢失了 2. mean 函数足够聪明,可以根据可用数据点计算平均值。

0 投票
1 回答
493 浏览

c# - Deedle Frame.mapRows 如何正确使用它以及如何正确构建objectseries

我还注意到 Deedle mapRows 函数有些奇怪,我无法解释:

f3 的值如何与 f2 不同?我对 f3 所做的只是从对象系列中获得价值。

我正在尝试使用此 mapRows 函数来执行基于行的过程并生成对象序列,然后 mapRows 可以使用相同的行键创建一个新框架。该过程必须基于行,因为列值需要根据其自身值和相邻值进行更新。

由于计算会根据行值而变化,因此无法直接使用列到列来完成计算。

感谢任何建议

更新

自从发布了原始问题以来,我就在 C# 中使用了 Deedle。令我惊讶的是,在 C# 中基于行的计算非常简单,并且 C# Frame.rows 函数处理缺失值的方式与 F# mapRows 函数非常不同。以下是我用来尝试验证逻辑的一个非常基本的示例。它可能对任何正在搜索类似应用程序的人有用:

需要注意的是: 1. rows 函数没有删除行,而两列的值都丢失了 2. mean 函数足够聪明,可以根据可用数据点计算平均值。

0 投票
1 回答
180 浏览

f# - Deedle:使用 Frame.mapColValues 的错误

我正在学习一个教程:
http
://dkowalski.com/blog/archive/2014/01/11/f-deedle-and-computational-investing.aspx当我尝试对“股票”的所有列应用标准化时“框架,使用Frame.mapColValues,我得到以下错误信息:

System.InvalidOperationException: OptionalValue.Value: Value is not available in Deedle.OptionalValue``1.get_Value() in c:\Tomas\Public\Deedle\src\Deedle\Common\Common.fs:riga 35 in FSI_0046.normalized@52-8.Invoke(ObjectSeries``1 os) in C:\Users\Bruno-Astarita\Documents\Visual Studio 2013\Projects\TestDeedle02\TestDeedle02\TestTutorial01.fsx:riga 52 in <StartupCode$Deedle>.$Series.f@257-13[K,V,R](Func``3 f, Int32 i, K key, V v) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 358 in <StartupCode$Deedle>.$Series.newVector@354-1.Invoke(Int32 i, Tuple``2 tupledArg) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 355 in Microsoft.FSharp.Collections.IEnumerator.mapi@129.DoMoveNext(b& ) in Microsoft.FSharp.Collections.IEnumerator.MapEnumerator``1.System-Collections-IEnumerator-MoveNext() in Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable``1 source) in Microsoft.FSharp.Collections.ArrayModule.OfSeq[T](IEnumerable``1 source) in Deedle.Series``2.Select[R](Func``3 f) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 352 in Deedle.Series``2.Select[R](Func``2 f) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 365 in Deedle.SeriesModule.MapValues[T,R,K](FSharpFunc``2 f, Series``2 series) in c:\Tomas\Public\Deedle\src\Deedle\SeriesModule.fs:riga 451 in <StartupCode$FSI_0046>.$FSI_0046.main@() in C:\Users\Bruno-Astarita\Documents\Visual Studio 2013\Projects\TestDeedle02\TestDeedle02\TestTutorial01.fsx:riga 49 Stopped due to error

我试图找到问题,根据源代码制作一步一步的程序FrameModule.fs,并在指令处引发错误Series.mapValues f。我哪里错了?
非常感谢。

更新
经过多次测试,问题似乎是由let firstItem = osAsFloat.GetAt(0)教程中的行引起的。如果我尝试用一​​切代替它就可以了let firstItem = 2.0。我仍然不清楚这种行为。

0 投票
0 回答
95 浏览

f# - Deedle:将函数应用于帧值

我有一个包含多个时间序列的框架,我需要标准化这些值。然后,我需要取每个系列的第一个元素,将系列的所有元素除以它。我尝试使用以下代码:



但我有一个错误:osAsFloat.GetAt(0)。我发现的唯一方法是转换单个系列中的值,然后在 for 循环中将函数应用于值。有没有更实用的方法来达到同样的效果?谢谢。

EDIT
MyFrame 来自下一个函数,它从 Yahoo! 下载数据!金融:


它的类型是Frame<DateTime, string>

0 投票
1 回答
132 浏览

list - 如何在 F# 中选择数据结构?

我有一个 csv 文件,它有近 10000000 行,结构如下:

“日期”和“代码”字段只是一个键。我想快速子集文件,像这样

或者

应该如何选择正确的数据结构以使其高效工作?

0 投票
1 回答
160 浏览

charts - F# 实时图表并行

我正在学习使用 F# Live Charting 并且难以使代码并行化。

我有这段代码,它是在一些谷歌搜索的一些例子的帮助下编写的。

当我将 Array.map 更改为 Array.Parallel.map 时,出现以下错误。

也得到了

试图使其他部分平行我也得到其他错误。似乎在将数据并行提供给 LiveChart.FastLineIncremental 时出现了问题。我还认为代码可以从某种异步过程中受益,但我不知道如何合并它。

非常感激任何的帮助。

这段代码可以正常工作,但我只想使用我所有的内核。

0 投票
1 回答
108 浏览

f# - 取消旋转 deedle 数据框

frame的stack函数可以这样转一个数据框

进入

然而,通常需要使用其中一个列值和另一列的标题作为新列的连接键,同时进行反透视。我怎样才能达到这样的结果:

原来的 cola 的值和 colb 和 colc 的列标题已经成为指向 colb 值和 colc 值的组合键。

如何使用 Deedle 实现这一目标?