DataFrame Question
DataFrame question: Today we use DataTables and LINQ to perform operations such as multi-column GroupBy, aggregations (Sum, Count, Average), joins, filtering, and calculated columns. Do DataFrames support these types of data-shaping operations natively, and if so, are they generally more efficient than DataTable + LINQ for in-memory transformations? For example, replacing a multi-column GroupBy + Sum pattern like the one below:
// Group by Entity, ProductType, ProductLine, Account, Channel, sum(LOCALAMOUNT)
DataTable result = dt.AsEnumerable()
.GroupBy(r => new
{
ENTITY = r.Field<string>("ENTITY"),
PRODUCTTYPE = r.Field<string>("PRODUCTTYPE"),
PRODUCTLINE = r.Field<string>("PRODUCTLINE"),
ACCOUNT = r.Field<string>("ACCOUNT"),
CHANNEL = r.Field<string>("CHANNEL")
})
.Select(g =>
{
DataRow row = dt.NewRow();
row["ENTITY"] = g.Key.ENTITY;
row["PRODUCTTYPE"] = g.Key.PRODUCTTYPE;
row["PRODUCTLINE"] = g.Key.PRODUCTLINE;
row["ACCOUNT"] = g.Key.ACCOUNT;
row["CHANNEL"] = g.Key.CHANNEL;
row["Amount"] = g.Sum(r => Convert.ToDecimal(r["LOCALAMOUNT"]));
return row;
})
.CopyToDataTable();
return result;
