我对LINQ和汇总数据有疑问。我有两个csv文件,其中填充了我要用来练习的伪数据。
第一个csv文件(因子)包含以下字段:
样本数据
第二个csv文件(县)包含以下字段:
样本数据
我正在尝试使用LINQ来按县获取FactorType的平均值。我有一个查询,按县返回每个ZipCode的FactorType,代码和输出的屏幕截图如下。
var query =
from county in countyRecords
join factor in factorRecords on county.Zipcode equals factor.Zipcode
into factorGroup
orderby county.County
select new CountyFactor
{
cf_county = county,
cf_factors = factorGroup
} into result
group result by result.cf_county.County;
我的目标是获取每种因子类型的平均值,例如:
CountyName
我的想法是获取第一个查询的结果,并在第二个查询中使用它们来获取那些结果,但是我不知道该怎么做。下面的代码是我所掌握的,但是不知道如何完成它。
var query2 =
from data in query
group data by data.Key into averageGroup
select new
{
average = averageGroup.Average()
}
谢谢您抽出宝贵的时间来研究这个问题!
答案 0 :(得分:0)
如果我正确理解了您的目标,则希望按国家和类型获得平均值。您可以按2个字段进行分组。要获得平均值,您需要指定字段。我认为这应该对您有帮助:
List
答案 1 :(得分:0)
countyRecords.Join( FactorRecords, c => c.ZipCode, f => f.ZipCode, (c, f) => new { County = c, Factor = f }).GroupBy(Factor.Type).Select( x=> new { x.key, x.Sum(Average) }).ToList( );
我不知道您是否需要所有平均值的总和。将sum替换为max可获得最大平均值,min取最小平均值,取其平均值。