1

我想从不包含负值的框架中选择/过滤列。这意味着使用仅包含正值的列创建一个新框架。

类似于以下内容(语法错误):

var myFrameNoNeg = myFrame.Columns.Where(kvp => kvp.Value > 0); // 

这个想法是删除包含负值的列。

谢谢你。

4

1 回答 1

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方法将列数据作为包含对象的盒装系列提供。UsingAs<double>()是一种将值作为浮点数获取的有效方法。

于 2015-05-04T14:24:33.560 回答