如何在IDataView中查看数据

Nit*_*ran 4 ml.net

在 中ML.net,我想查看 中的数据IDataView以验证是否加载了正确的数据。我看不到任何可视化工具/调试工具来查看它们,就像我们以System.Data.DataTable表格形式查看一样

var mlContext = new MLContext();
IDataView trainData = mlContext.Data.LoadFromTextFile<TaxiTrip>(GetAbsolutePath("../../taxi-fare-test.csv"), hasHeader: true);
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 5

有一个Preview方法可以实现IDataView. 您可以在变量中运行该方法并通过该变量进行调试以查看数据。

var preview = trainData.Preview();
Run Code Online (Sandbox Code Playgroud)

  • `dataView.Preview().RowView;` 更有用 (2认同)

Nit*_*ran 5

我真正想要的是以表格格式查看数据。为了实现这一目标,我为IDataView下面的对象编写了一个扩展方法,它将数据转换为DataTable

扩大

public static class DataViewHelper
{
    public static DataTable ToDataTable(this IDataView dataView)
    {
        DataTable dt = null;
        if (dataView != null)
        {
            dt = new DataTable();
            var preview = dataView.Preview();
            dt.Columns.AddRange(preview.Schema.Select(x => new DataColumn(x.Name)).ToArray());
            foreach (var row in preview.RowView)
            {
                var r = dt.NewRow();
                foreach (var col in row.Values)
                {
                    r[col.Key] = col.Value;
                }
                dt.Rows.Add(r);

            }
        }
        return dt;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

var table= dataView.ToDataTable();

如果你现在调试变量table,你可以使用Visual Studio内置的DataTable Visualizer来查看数据