2015-05-03 19 views
-1

我讀我的數據在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) 

我該怎麼辦?任何意見都表示讚賞!

+0

首先你應該出示你的問題的一小部分工作的例子 - 在這種情況下,你應該給結構''''''''''''''''''''''''''''''''''''''''''''''''''你有錯誤的價值嗎? - 因爲這是你的問題,只是不負責任,這可能是爲什麼你得到一個downvote – Carsten

回答

2

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方法只需名稱的列(非常類似於使用調用ReadCsvindexCol參數):

let myindexedframe = myannual.IndexRows<int>("yyyy")