Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aprenda a empezar a trabajar con DataFrames, que son estructuras de datos bidimensionales para almacenar y manipular datos. DataFrames ayuda con la preparación de datos para un modelo de aprendizaje automático. Los dataFrames también se pueden usar para la manipulación de datos no relacionada con el aprendizaje automático.
Instalación de Microsoft.Data.Analysis
En la mayoría de los casos, acceder a DataFrame es tan sencillo como hacer referencia al paquete NuGet de Microsoft.Data.Analysis.
dotnet package add Microsoft.Data.Analysis
Carga de datos
Los dataframes facilitan la carga de datos tabulares. Cree un archivo separado por comas denominado housing-prices.csv con los datos siguientes.
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
Comience cargando los datos en 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);
Inspección de datos
DataFrames almacenan datos como una colección de columnas. Esto facilita la interacción con los datos.
Para obtener una vista previa de los tipos de datos de columna, ejecute Info().
dataFrame.Info();
Para obtener un resumen de los datos, ejecute Description().
dataFrame.Description();
Transformación de datos
Hay una variedad de opciones transformadoras para los datos. Las clases DataFrame y DataFrameColumn ofrecen una serie de APIs útiles, incluidas las operaciones binarias, los cálculos, las uniones, las combinaciones y el control de los valores que faltan.
Por ejemplo, estos datos se pueden editar para comparar los precios históricos con los precios actuales que representan la inflación. Puede aplicar un cálculo a todos los valores y guardar los resultados en una nueva columna.
dataFrame["ComputedPrices"] = dataFrame["HistoricalPrice"].Multiply(2);
Los datos se pueden ordenar en grupos de los valores de una columna específica.
var sortedDataFrame = dataFrame.GroupBy("Size");
Los datos se pueden filtrar en función de diferentes métricas de igualdad. En este ejemplo se usa una función de igualdad ElementWise, y, a continuación, se filtra en función de la columna de resultado booleano para obtener un nuevo DataFrame con solo los valores adecuados.
PrimitiveDataFrameColumn<bool> boolFilter = dataFrame["CurrentPrice"].ElementwiseGreaterThan(200000);
DataFrame filteredDataFrame = dataFrame.Filter(boolFilter);
Combinar orígenes de datos
Tenga en cuenta los siguientes datos sin procesar:
Id, Bedrooms
1, 1
2, 2
3, 3
4, 2
5, 3
6, 1
Los dataFrames se pueden construir a partir de columnas de datos individuales. Cree un DataFrame a partir de una lista de los datos sin procesar.
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);
Los dos dataframes se pueden combinar en función del valor de Id
. La función merge toma ambos DataFrames y combina filas según su valor Id
.
dataFrame = dataFrame.Merge(dataFrame2, new string[] {"Id"}, new string[] {"Id"});
Guardar tramas de datos
Los resultados se pueden volver a guardar en un formato .csv.
DataFrame.SaveCsv(dataFrame, "result.csv", ',');
Uso de DataFrame con ML.NET
Los dataframes funcionan directamente con ML.NET. DataFrame implementa el IDataView y se puede usar para entrenar un modelo.