Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie mit DataFrames beginnen, bei denen es sich um zweidimensionale Datenstrukturen zum Speichern und Bearbeiten von Daten handelt. DataFrames helfen bei der Vorbereitung von Daten für ein Machine Learning-Modell. DataFrames können auch für Datenmanipulation verwendet werden, die nicht im Zusammenhang mit maschinellem Lernen stehen.
Installieren von Microsoft.Data.Analysis
In den meisten Fällen ist der Zugriff auf DataFrame so einfach wie das Referenzieren des Microsoft.Data.Analysis-NuGet-Pakets.
dotnet package add Microsoft.Data.Analysis
Laden der Daten
DataFrames erleichtern das Laden von tabellarischen Daten. Erstellen Sie eine durch Trennzeichen getrennte Datei namenshousing-prices.csv mit den folgenden Daten.
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
Beginnen Sie, indem Sie die Daten in ein DataFrame laden.
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);
Überprüfen von Daten
DataFrames speichern Daten als Sammlung von Spalten. Dies erleichtert die Interaktion mit den Daten.
Um eine Vorschau der Spaltendatentypen zu erhalten, führen Sie Info() aus.
dataFrame.Info();
Führen Sie zum Abrufen einer Zusammenfassung der Daten aus Description().
dataFrame.Description();
Transformieren von Daten
Es gibt eine Vielzahl transformativer Optionen für Daten. Die Klassen DataFrame und DataFrameColumn bieten eine Reihe nützlicher APIs, darunter binäre Operationen, Berechnungen, Verknüpfungen, Zusammenführungen und die Behandlung fehlender Werte.
Beispielsweise können diese Daten bearbeitet werden, um historische Preise mit aktuellen Preisen zu vergleichen, die die Inflation berücksichtigen. Sie können eine Berechnung auf alle Werte anwenden und die Ergebnisse in einer neuen Spalte speichern.
dataFrame["ComputedPrices"] = dataFrame["HistoricalPrice"].Multiply(2);
Daten können in Gruppen aus den Werten in einer bestimmten Spalte sortiert werden.
var sortedDataFrame = dataFrame.GroupBy("Size");
Daten können basierend auf unterschiedlichen Gleichheitsmetriken gefiltert werden. In diesem Beispiel wird eine ElementWise-Gleichheitsfunktion verwendet und dann basierend auf der booleschen Ergebnisspalte gefiltert, um einen neuen DataFrame mit nur den entsprechenden Werten abzurufen.
PrimitiveDataFrameColumn<bool> boolFilter = dataFrame["CurrentPrice"].ElementwiseGreaterThan(200000);
DataFrame filteredDataFrame = dataFrame.Filter(boolFilter);
Kombinieren von Datenquellen
Berücksichtigen Sie die folgenden Rohdaten:
Id, Bedrooms
1, 1
2, 2
3, 3
4, 2
5, 3
6, 1
DataFrames können aus einzelnen Datenspalten erstellt werden. Erstellen Sie einen DataFrame aus einer Liste der Rohdaten.
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);
Die beiden DataFrames können basierend auf dem Id
Wert zusammengeführt werden. Die Zusammenführungsfunktion nimmt beide DataFrames und kombiniert Zeilen basierend auf ihrem Id
-Wert.
dataFrame = dataFrame.Merge(dataFrame2, new string[] {"Id"}, new string[] {"Id"});
Speichern von DataFrames
Ergebnisse können wieder in einem .csv Format gespeichert werden.
DataFrame.SaveCsv(dataFrame, "result.csv", ',');
Verwenden von DataFrame mit ML.NET
DataFrames arbeiten direkt mit ML.NET. DataFrame implementiert das IDataView Modell und kann zum Trainieren eines Modells verwendet werden.