Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zjistěte, jak začít s datovými rámci, což jsou dvojrozměrné datové struktury pro ukládání a manipulaci s daty. Datové rámce pomáhají s přípravou dat pro model strojového učení. Datové rámce se dají použít také pro manipulaci s daty nesouvisející s machine learningem.
Instalace Microsoft.Data.Analysis
Ve většině případů je přístup DataFrame jednoduchý jako odkaz na balíček NuGet Microsoft.Data.Analysis .
dotnet add package Microsoft.Data.Analysis
Nebo v .NET 10+:
dotnet package add Microsoft.Data.Analysis
Načtení dat
Datové rámce usnadňují načítání tabulkových dat. Vytvořte soubor oddělený čárkami s názvem housing-prices.csv s následujícími daty.
Id,Size,HistoricalPrice,CurrentPrice
1,600f,100000,170000
2,1000f,200000,225000
3,1000f,126000,195000
4,850f,150000,205000
5,900f,155000,210000
6,550f,99000,180000
Začněte načtením dat do datového rámce.
using System.IO;
using System.Linq;
using Microsoft.Data.Analysis;
// Define data path
var dataPath = Path.GetFullPath(@"housing-prices.csv");
// Load the data into the data frame
var dataFrame = DataFrame.LoadCsv(dataPath);
Kontrola dat
Datové rámce ukládají data jako kolekci sloupců. To usnadňuje interakci s daty.
Pokud chcete získat náhled datových typů sloupců, spusťte Info()příkaz .
dataFrame.Info();
Pokud chcete získat souhrn dat, spusťte Description()příkaz .
dataFrame.Description();
Přeměna dat
Pro data existuje celá řada transformativních možností. Třídy DataFrame a DataFrameColumn zpřístupňují řadu užitečných rozhraní API, včetně binárních operací, výpočtů, spojení, sloučení a zpracování chybějících hodnot.
Tato data lze například upravit tak, aby porovnávala historické ceny s aktuálními cenami, které se rovnají inflace. Výpočet můžete použít pro všechny hodnoty a výsledky uložit do nového sloupce.
dataFrame["ComputedPrices"] = dataFrame["HistoricalPrice"].Multiply(2);
Data je možné řadit do skupin z hodnot v určitém sloupci.
var sortedDataFrame = dataFrame.GroupBy("Size");
Data je možné filtrovat na základě různých metrik rovnosti. Tento příklad používá funkci rovnosti ElementWise a pak filtruje na základě logického výsledného sloupce, aby získal nový datový rámec pouze s příslušnými hodnotami.
PrimitiveDataFrameColumn<bool> boolFilter = dataFrame["CurrentPrice"].ElementwiseGreaterThan(200000);
DataFrame filteredDataFrame = dataFrame.Filter(boolFilter);
Kombinování zdrojů dat
Vezměte v úvahu následující nezpracovaná data:
Id, Bedrooms
1, 1
2, 2
3, 3
4, 2
5, 3
6, 1
Datové rámce lze vytvořit z jednotlivých datových sloupců. Vytvoří datový rámec ze seznamu nezpracovaných dat.
var ids = new List<Single>() {1,2,3,4,5,6};
var bedrooms = new List<Single>() {1, 2, 3, 2, 3, 1};
var idColumn = new SingleDataFrameColumn("Id", ids);
var bedroomColumn = new SingleDataFrameColumn("BedroomNumber", bedrooms);
var dataFrame2 = new DataFrame(idColumn, bedroomColumn);
Dva datové rámce lze sloučit na základě hodnoty Id
. Slučovací funkce přebírá datové rámce i kombinuje řádky na základě jejich Id
hodnoty.
dataFrame = dataFrame.Merge(dataFrame2, new string[] {"Id"}, new string[] {"Id"});
Ukládání datových rámců
Výsledky lze uložit zpět do formátu .csv.
DataFrame.SaveCsv(dataFrame, "result.csv", ',');
Použití datového rámce s ML.NET
Datové rámce pracují přímo s ML.NET. Datový rámec implementuje IDataView a dá se použít k natrénování modelu.