F# 从驱动架上拆下索引

F# 从驱动架上拆下索引,f#,deedle,F#,Deedle,假设数据帧按如下方式加载: 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.01

假设数据帧按如下方式加载:

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  
基本上,索引是如何从deedle数据框中删除并转换为数据框的一列的。

使用F#友好的deedle API,您可以使用
addCol
将键添加为新列,然后您可以使用
indexrow或通常的
将原始键替换为纯数字索引:

df 
|> Frame.addCol "Keys" (df |> Frame.mapRows (fun k _ -> k))
|> Frame.indexRowsOrdinally
或者,也可以强制执行第一个步骤,这稍微短一点:

f.AddColumn("Keys", f.RowKeys)
f |> Frame.indexRowsOrdinally
使用F#友好的Deedle API,您可以使用
addCol
将键添加为新列,然后可以使用
indexrowsordinarily
将原始键替换为普通数字索引:

df 
|> Frame.addCol "Keys" (df |> Frame.mapRows (fun k _ -> k))
|> Frame.indexRowsOrdinally
或者,也可以强制执行第一个步骤,这稍微短一点:

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