假设数据帧的加载方式如下:
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数据框中删除索引并将其转换为数据框的列。
答案 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