2016-08-01 104 views
2

假设一个数据帧被加载像这样:删除索引

let fr = Frame.ReadCsv("somedata.txt", hasHeaders=true, separators="\t") 
      |> Frame.indexRowsDate "Datetime" 

它的输出看起来是这样的:

     Open  High  Low  Close  
5/14/2015 7:02:00 AM -> 21.00000 21.01000 21.00000 21.01000 
5/14/2015 7:03:00 AM -> 22.01000 22.01000 22.93000 22.9500 

你如何变换数据框为以下:

 Datetime    Open  High  Low  Close  
0 -> 5/14/2015 7:02:00 AM 21.00000 21.01000 21.00000 21.01000 
1 -> 5/14/2015 7:03:00 AM 22.01000 22.01000 22.93000 22.9500 

基本上,索引是如何从一个delele数据帧中删除并转换为数据帧的列。

回答

3

使用F# - 友好Deedle API,你可以使用addCol添加键作为一个新列,然后你可以使用indexRowsOrdinarilly与普通的数字索引来替换原来的键:

df 
|> Frame.addCol "Keys" (df |> Frame.mapRows (fun k _ -> k)) 
|> Frame.indexRowsOrdinally 

另外,第一也可以做到势在必行,这有点短:

f.AddColumn("Keys", f.RowKeys) 
f |> Frame.indexRowsOrdinally