从 Deedle Frame 中删除索引

Remove index from Deedle Frame

假设像这样加载数据帧:

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#-friendly Deedle API,您可以使用 addCol 将键添加为新列,然后您可以使用 indexRowsOrdinarilly 将原始键替换为纯数字指数:

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

或者,第一个也可以命令式完成,这有点短:

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