gpt4 book ai didi

f# - 在 Deedle 中查找每个层次索引的 Stats.max

转载 作者:行者123 更新时间:2023-12-04 10:35:06 25 4
gpt4 key购买 nike

如果我有一个包含 [City, Dealership, Total Cars Sold] 的数据集。我如何获得每个城市的顶级经销商以及他们售出的汽车数量?

结果应该是这样的

City1 Dealership A 2000
City2 Dealership X 1000
etc.

我确定这是可能的,但我没有任何运气,这可能是因为我以错误的方式处理问题。

目前我正在按经销商和城市分组,这创建了一个 Frame<(string*string*int), int>这让我
City1 Dealership A 1 -> 2000
City1 Dealership B 2 -> 1000
City2 Dealership X 3 -> 1000
City2 Dealership Y 4 -> 500
etc.

但是试图获得交易最多的经销商是我难倒的地方。

谢谢。

最佳答案

我改编了托马斯的回答并将类型输出为 Series<string, (string * int)>

let data = series [
("City1", "Dealership A") => 2000
("City1", "Dealership B") => 1000
("City2", "Dealership X") => 1000
("City2", "Dealership Y") => 500 ]

data
|> Series.groupBy (fun k _ -> fst k)
|> Series.mapValues (fun sr ->
let sorted = sr |> Series.sortBy(fun x -> -x)
let key = sorted |> Series.firstKey |> snd
let value = sorted |> Series.firstValue
key, value )

输出看起来像
City1 -> (Dealership A, 2000) 
City2 -> (Dealership X, 1000)

已编辑

我假设你有一个这样的 csv 文件
City,Dealership,TotalCarsSold
City1,Dealership A,2000
City1,Dealership B,1000
City2,Dealership X,1000
City2,Dealership Y,500

这就是我要做的。读作 Frame并将列设为 Series并应用上面相同的代码来获得结果。

let df = 
Frame.ReadCsv("C:/Temp/dealership.csv")
|> Frame.indexRowsUsing(fun r -> r.GetAs<string>("City"), r.GetAs<string>("Dealership"))
df?TotalCarsSold
|> Series.groupBy (fun k _ -> fst k)
|> Series.mapValues (fun sr ->
let sorted = sr |> Series.sortBy(fun x -> -x)
let key = sorted |> Series.firstKey |> snd
let value = sorted |> Series.firstValue
key, value )

关于f# - 在 Deedle 中查找每个层次索引的 Stats.max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60216780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com