我有两个框架,每个框架都包含一些 ID 和每个 ID 的零到多个度量。我想获得每个帧的每个 ID 的平均度量值并组合成一个更大的帧。
问题是,当一个 ID 没有出现在两个帧之一中时,分组后会导致组合帧中的缺失值。这是一个例子。注意 ID“Chris”没有出现在帧 A 中。
let aF = frame [ "AID" =?> Series.ofValues [ "Andrew"; "Andrew"; "Andrew"]; "AMES" =?> Series.ofValues [ 2; 4; 3]]
let bF = frame [ "BID" =?> Series.ofValues [ "Andrew"; "Chris"; "Andrew"]; "BMES" =?> Series.ofValues [ 1; 6; 7]]
let groupF = frame [ "AG" => (aF |> Frame.groupRowsByString "AID" |> Frame.getCol "AMES") ; "BG" => (bF |> Frame.groupRowsByString "BID" |> Frame.getCol "BMES") ]
let groupFMean = groupF |> Frame.getNumericCols |> Series.mapValues (Stats.levelMean fst) |> Frame.ofColumns |> Frame.fillMissingWith 0
groupFMean.SaveCsv( "tgroupFMean.csv", includeRowKeys=true, keyNames=["Id"] )
结果表如下所示:
Id AG BG
Andrew 3 4
Chris 6
空白单元格是“”。我尝试了 fillMissingWith 0 的变体(在系列和帧级别)但没有成功。