A DataFrames használatának első lépései

Megtudhatja, hogyan kezdheti el a DataFrame-eket, amelyek kétdimenziós adatstruktúrák az adatok tárolására és manipulálására. A DataFrame-ek segítenek az adatok előkészítésében egy gépi tanulási modellhez. A DataFrame-ek a gépi tanulástól független adatfeldolgozáshoz is használhatók.

A Microsoft.Data.Analysis telepítése

A hozzáférés DataFrame a legtöbb esetben olyan egyszerű, mint a Microsoft.Data.Analysis NuGet-csomagra való hivatkozás.

dotnet add package Microsoft.Data.Analysis

Vagy a .NET 10+-ban:

dotnet package add Microsoft.Data.Analysis

Adatok betöltése

A DataFrame-ek megkönnyítik a táblázatos adatok betöltését. Hozzon létre egy housing-prices.csv nevű vesszővel tagolt fájlt a következő adatokkal.

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

Először töltse be az adatokat egy DataFrame-be.

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

Adatok vizsgálata

A DataFrames oszlopok gyűjteményeként tárolja az adatokat. Ez megkönnyíti az adatokkal való interakciót.

Az oszlop-adattípusok előnézetének lekéréséhez futtassa a következőt Info(): .

dataFrame.Info();

Az adatok összegzéséhez futtassa a következőt Description(): .

dataFrame.Description();

Adatok átalakítása

Az adatok számos különböző átalakító lehetőséget kínálnak. Az DataFrame osztályok számos DataFrameColumn hasznos API-t fednek fel, beleértve a bináris műveleteket, számításokat, illesztéseket, egyesítéseket és a hiányzó értékek kezelését.

Ezek az adatok szerkeszthetők például a korábbi árak és az inflációt elszámoló aktuális árak összehasonlításához. Számítást alkalmazhat az összes értékre, és az eredményeket egy új oszlopba mentheti.

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

Az adatok csoportokba rendezhetők egy adott oszlop értékeiből.

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

Az adatok különböző egyenlőségi metrikák alapján szűrhetők. Ez a példa egy ElementWise egyenlőségi függvényt használ, majd a logikai eredmény oszlopon alapuló szűrőket használ egy új DataFrame beolvasásához, amely csak a megfelelő értékeket tartalmazza.

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

Adatforrások egyesítése

Vegye figyelembe a következő nyers adatokat:

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

A DataFrame-ek különálló adatoszlopokból hozhatók létre. Hozzon létre egy DataFrame-et a nyers adatok listájából.

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

A két DataFrame a Id érték alapján egyesíthető. Az egyesítési függvény mind a DataFrame-eket, mind a sorokat összevonja az értékük Id alapján.

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

Adatkeretek mentése

Az eredmények .csv formátumban menthetők.

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

A DataFrame használata az ML.NET-ben

A DataFrames közvetlenül együttműködik az ML.NET-tel. A DataFrame megvalósítja a IDataView, és használható egy modell betanítására.