Предположим, у меня есть этот пример данных:
Sample.csv:
Dog,25
Cat,23
Cat,20
Dog,0
И я хочу загрузить его в IDataView
, преобразовать его, чтобы он был готов к ML (без строк и т. Д.), Затем снова сохранить его как .csv
, скажем, для анализа с помощью другого инструмента или языков.
// Load data:
var sampleCsv = Path.Combine("Data", "Sample.csv");
var columns = new[]
{
new TextLoader.Column("type", DataKind.String, 0),
new TextLoader.Column("age", DataKind.Int16, 1),
};
var mlContext = new MLContext(seed: 0);
var dataView = mlContext.Data.LoadFromTextFile(sampleCsv, columns,',');
// Transform
var pipeline =
mlContext.Transforms.Categorical.OneHotEncoding("type",
// This outputKind will add just one column, while others will add some:
outputKind: OneHotEncodingEstimator.OutputKind.Key);
var transformedDataView = pipeline.Fit(dataView).Transform(dataView);
// transformedDataView:
// Dog,1,25
// Cat,2,23
// Cat,2,20
// Dog,1,0
Как получить два числовых столбца и записать их в файл .csv
?