从Deedle Frame中删除索引

时间:2016-08-01 22:07:50

标签: 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.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数据框中删除索引并将其转换为数据框的列。

1 个答案:

答案 0 :(得分: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