DataFrame'leri kullanmaya başlama

Verileri depolamak ve işlemek için iki boyutlu veri yapıları olanDataFrame'leri kullanmaya başlamayı öğrenin. DataFrame'ler, bir makine öğrenmesi modeli için verilerin hazırlanmasına yardımcı olur. DataFrame'ler, makine öğrenmesi ile ilgili olmayan veri işleme için de kullanılabilir.

Microsoft.Data.Analysis'i yükleme

Çoğu durumda DataFrame erişmek, Microsoft.Data.Analysis NuGet paketine başvurmak kadar basittir.

dotnet add package Microsoft.Data.Analysis

Veya .NET 10+'da:

dotnet package add Microsoft.Data.Analysis

Verileri yükleme

DataFrame'ler tablosal verilerin yüklenmesini kolaylaştırır. Aşağıdaki verilerle housing-prices.csv adlı virgülle ayrılmış bir dosya oluşturun.

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

Verileri bir DataFrame'e yükleyerek başlayın.

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);

Verileri inceleme

DataFrame'ler verileri bir sütun koleksiyonu olarak depolar. Bu, verilerle etkileşim kurmayı kolaylaştırır.

Sütun veri türlerinin önizlemesini almak için Info()çalıştırın.

dataFrame.Info();

Verilerin özetini almak için Description()çalıştırın.

dataFrame.Description();

Verileri dönüştürme

Veriler için çeşitli dönüştürücü seçenekler vardır. DataFrame ve DataFrameColumn sınıfları ikili işlemler, hesaplamalar, birleştirmeler, birleştirmeler ve eksik değerleri işleme gibi birçok yararlı API'yi kullanıma sunar.

Örneğin, bu veriler geçmiş fiyatları, enflasyonu hesap eden geçerli fiyatlarla karşılaştırmak için düzenlenebilir. Tüm değerlere hesaplama uygulayabilir ve sonuçları yeni bir sütuna kaydedebilirsiniz.

dataFrame["ComputedPrices"] = dataFrame["HistoricalPrice"].Multiply(2);

Veriler belirli bir sütundaki değerlerden gruplar halinde sıralanabilir.

var sortedDataFrame = dataFrame.GroupBy("Size");

Veriler farklı eşitlik ölçümlerine göre filtrelenebilir. Bu örnekte ElementWise eşitlik işlevi kullanılmaktadır ve ardından boole sonuç sütununa göre filtre uygulanarak yalnızca uygun değerlere sahip yeni bir DataFrame elde edilir.

PrimitiveDataFrameColumn<bool> boolFilter = dataFrame["CurrentPrice"].ElementwiseGreaterThan(200000);
DataFrame filteredDataFrame = dataFrame.Filter(boolFilter);

Veri kaynaklarını birleştirme

Aşağıdaki ham verileri göz önünde bulundurun:

Id, Bedrooms
1, 1
2, 2
3, 3
4, 2
5, 3
6, 1

DataFrame'ler tek tek veri sütunlarından oluşturulabilir. Ham veri listesinden bir DataFrame oluşturun.

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);

İki DataFrame, Id değerine göre birleştirilebilir. Birleştirme işlevi hem DataFrame'leri alır hem de satırları Id değerlerine göre birleştirir.

dataFrame = dataFrame.Merge(dataFrame2, new string[] {"Id"}, new string[] {"Id"});

Veri Çerçevelerini Kaydet

Sonuçlar .csv biçime geri kaydedilebilir.

DataFrame.SaveCsv(dataFrame, "result.csv", ',');

DataFrame'i ML.NET ile kullanma

DataFrame'ler doğrudan ML.NET ile çalışır. DataFrame IDataView uygular ve modeli eğitmek için kullanılabilir.