我想从不包含负值的帧中选择/过滤列。这意味着使用仅包含正值的列创建新框架。
如下所示(语法错误):
var myFrameNoNeg = myFrame.Columns.Where(kvp => kvp.Value > 0); //
想法是删除包含负值的列。
谢谢。
答案 0 :(得分: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>()
是将值作为浮点数的有效方法。