在ML.NET中,是否有等效于pandasivot_table()函数的功能?

时间:2019-06-26 01:42:37

标签: c# pandas ml.net

我刚刚开始尝试学习ML.NET,并且我有一个csv表示客户购买的产品,因此我有userId和productId列。我想对此进行转换,以便为每个产品ID分配一列,为每个用户分配行,其值为1或NaN,这取决于他们是否购买了该商品。 ML.NET中的IDataView是否可以实现?谢谢

1 个答案:

答案 0 :(得分:0)

看看CustomMapping。您可以在其他列上基于自定义逻辑添加列,例如在下面的示例中,IsUnderThirty是根据Age的值添加的。

 // Get a small dataset as an IEnumerable and convert it to an IDataView.
        var samples = new List<InputData>
        {
            new InputData { Age = 26 },
            new InputData { Age = 35 },
            new InputData { Age = 34 },
            new InputData { Age = 28 },
        };
        var data = mlContext.Data.LoadFromEnumerable(samples);

        // We define the custom mapping between input and output rows that will be applied by the transformation.
        Action<InputData, CustomMappingOutput > mapping =
            (input, output) => output.IsUnderThirty = input.Age < 30;