在 F# 中按年份索引行
index rows by year in F#
我正在 F# 上以框架形式读取我的数据,如下所示
let myannual = Frame.ReadCsv("data/annual.csv")
我的框架由时间序列列和年份列组成,我想按年份索引我的时间序列。我不能像下面那样做
let myyears = [| for i in myannual.GetColumn<float>("yyyy").Values -> float i |]
let myindexedframe = myannual.IndexRows(myyears)
我该怎么办?感谢任何反馈!
ReadCsv
方法有一个可选参数 indexCol
可用于指定索引列 - 您还需要提供一个类型参数来告诉 Deedle 索引的类型是什么:
let myannual = Frame.ReadCsv<int>("data/annual.csv", indexCol="yyy")
你的方法也可行,但你需要使用 IndexRowsWith
,它需要一系列新索引(最好使用 int
,因为 float
是多年不精确):
let myyears = [| for i in myannual.GetColumn<float>("yyyy").Values -> int i |]
let myindexedframe = myannual.IndexRowsWith(myyears)
IndexRows
方法仅获取列的名称(与调用 ReadCsv
时使用 indexCol
参数非常相似):
let myindexedframe = myannual.IndexRows<int>("yyyy")
我正在 F# 上以框架形式读取我的数据,如下所示
let myannual = Frame.ReadCsv("data/annual.csv")
我的框架由时间序列列和年份列组成,我想按年份索引我的时间序列。我不能像下面那样做
let myyears = [| for i in myannual.GetColumn<float>("yyyy").Values -> float i |]
let myindexedframe = myannual.IndexRows(myyears)
我该怎么办?感谢任何反馈!
ReadCsv
方法有一个可选参数 indexCol
可用于指定索引列 - 您还需要提供一个类型参数来告诉 Deedle 索引的类型是什么:
let myannual = Frame.ReadCsv<int>("data/annual.csv", indexCol="yyy")
你的方法也可行,但你需要使用 IndexRowsWith
,它需要一系列新索引(最好使用 int
,因为 float
是多年不精确):
let myyears = [| for i in myannual.GetColumn<float>("yyyy").Values -> int i |]
let myindexedframe = myannual.IndexRowsWith(myyears)
IndexRows
方法仅获取列的名称(与调用 ReadCsv
时使用 indexCol
参数非常相似):
let myindexedframe = myannual.IndexRows<int>("yyyy")