在 C# 中使用 Deedle,我如何才能 select 仅包含来自帧的非负值的列?
How can I select only the columns containing non negative values from a frame using Deedle in C#?
我想 select/过滤框架中不包含负值的列。这意味着创建一个新框架,其中的列仅包含正值。
类似于以下内容(语法错误):
var myFrameNoNeg = myFrame.Columns.Where(kvp => kvp.Value > 0); //
想法是删除包含负值的列。
谢谢。
您的代码指向正确的方向 - 您需要使用 frame.Columns.Where
。但是,这不会给您单独的值,而是整个列(作为一个系列),因此您需要(再次)迭代列中的所有值:
using Deedle;
using System.Linq;
Frame.FromColumns(frame.Columns.Where(kvp =>
!kvp.Value.As<double>().Values.Any(v => v < 0.0)))
由于您正在对列进行迭代,因此您需要在最后调用 Frame.FromColumns
将列系列变回框架。
Where
方法将列数据作为包含对象的盒装系列提供。使用 As<double>()
是获取浮点值的有效方法。
我想 select/过滤框架中不包含负值的列。这意味着创建一个新框架,其中的列仅包含正值。
类似于以下内容(语法错误):
var myFrameNoNeg = myFrame.Columns.Where(kvp => kvp.Value > 0); //
想法是删除包含负值的列。
谢谢。
您的代码指向正确的方向 - 您需要使用 frame.Columns.Where
。但是,这不会给您单独的值,而是整个列(作为一个系列),因此您需要(再次)迭代列中的所有值:
using Deedle;
using System.Linq;
Frame.FromColumns(frame.Columns.Where(kvp =>
!kvp.Value.As<double>().Values.Any(v => v < 0.0)))
由于您正在对列进行迭代,因此您需要在最后调用 Frame.FromColumns
将列系列变回框架。
Where
方法将列数据作为包含对象的盒装系列提供。使用 As<double>()
是获取浮点值的有效方法。