Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Informazioni su come iniziare a usare dataframe, che sono strutture di dati bidimensionali per l'archiviazione e la modifica dei dati. I dataframe consentono di preparare i dati per un modello di Machine Learning. I dataframe possono essere usati anche per la manipolazione dei dati non correlata all'apprendimento automatico.
Installare Microsoft.Data.Analysis
Nella maggior parte dei casi, l'accesso a DataFrame è semplice come fare riferimento al pacchetto Microsoft.Data.Analysis NuGet.
dotnet package add Microsoft.Data.Analysis
Caricare i dati
I dataframe semplificano il caricamento di dati tabulari. Creare un file delimitato da virgole denominato housing-prices.csv con i dati seguenti.
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
Per iniziare, caricare i dati in un dataframe.
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);
Esaminare i dati
I dataframe archiviano i dati come raccolta di colonne. In questo modo è facile interagire con i dati.
Per ottenere un'anteprima dei tipi di dati della colonna, eseguire Info().
dataFrame.Info();
Per ottenere un riepilogo dei dati, eseguire Description().
dataFrame.Description();
Trasforma i dati
Sono disponibili diverse opzioni di trasformazione per i dati. Le classi DataFrame e DataFrameColumn espongono numerose API utili, tra cui operazioni binarie, calcoli, join, merge e gestione dei valori mancanti.
Ad esempio, questi dati possono essere modificati per confrontare i prezzi cronologici con i prezzi correnti che rappresentano l'inflazione. È possibile applicare un calcolo a tutti i valori e salvare i risultati in una nuova colonna.
dataFrame["ComputedPrices"] = dataFrame["HistoricalPrice"].Multiply(2);
I dati possono essere ordinati in gruppi dai valori di una colonna specifica.
var sortedDataFrame = dataFrame.GroupBy("Size");
I dati possono essere filtrati in base a metriche di uguaglianza diverse. In questo esempio viene utilizzata una ElementWise funzione di uguaglianza e quindi viene filtrata in base alla colonna dei risultati booleana per ottenere un nuovo dataframe con solo i valori appropriati.
PrimitiveDataFrameColumn<bool> boolFilter = dataFrame["CurrentPrice"].ElementwiseGreaterThan(200000);
DataFrame filteredDataFrame = dataFrame.Filter(boolFilter);
Combinare le fonti di dati
Considerare i dati non elaborati seguenti:
Id, Bedrooms
1, 1
2, 2
3, 3
4, 2
5, 3
6, 1
I dataframe possono essere costruiti da singole colonne di dati. Creare un dataframe da un elenco dei dati non elaborati.
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);
I due dataframe possono essere uniti in base al valore Id
. La funzione di merge accetta entrambi i dataframe e combina le righe in base al relativo valore Id
.
dataFrame = dataFrame.Merge(dataFrame2, new string[] {"Id"}, new string[] {"Id"});
Salvare i dataframe
I risultati possono essere salvati di nuovo in un formato .csv.
DataFrame.SaveCsv(dataFrame, "result.csv", ',');
Usare il dataframe con ML.NET
I dataframe funzionano direttamente con ML.NET. Il dataframe implementa il IDataView e può essere usato per eseguire il training di un modello.