F# 在Deedle F中指定日期的所有时间#

F# 在Deedle F中指定日期的所有时间#,f#,f#-interactive,f#-3.0,f#-data,deedle,F#,F# Interactive,F# 3.0,F# Data,Deedle,我有带OHLC和DateTime数据的CSV,数据用1分钟条形图采样,我想计算不同时间段的VWAP。如何索引到一个框架中,以获取特定日期内的所有时间 let csv_temp = Frame.ReadCsv<DateTime>(filepath, indexCol ="Date and Time") 这给了我: 1/2/2013 9:31:00 AM -> 65088 1/2/2013 9:32:00 AM -> 4432997.7 1/2/20

我有带OHLC和DateTime数据的CSV,数据用1分钟条形图采样,我想计算不同时间段的VWAP。如何索引到一个框架中,以获取特定日期内的所有时间

let csv_temp = Frame.ReadCsv<DateTime>(filepath, indexCol ="Date and Time")
这给了我:

1/2/2013 9:31:00 AM  -> 65088       
1/2/2013 9:32:00 AM  -> 4432997.7   
1/2/2013 9:33:00 AM  -> 1407412.375 
1/2/2013 9:34:00 AM  -> 918077      
1/2/2013 9:35:00 AM  -> 1037200.32  
1/2/2013 9:36:00 AM  -> 1464104.6   
1/2/2013 9:37:00 AM  -> 1179067.16  
1/2/2013 9:38:00 AM  -> 1416311.45  
1/2/2013 9:39:00 AM  -> 1893821.16  
1/2/2013 9:40:00 AM  -> 521449.4442 
1/2/2013 9:41:00 AM  -> 656896.779  
1/2/2013 9:42:00 AM  -> 518200.425  
1/2/2013 9:43:00 AM  -> 1327152.28  
1/2/2013 9:44:00 AM  -> 1035047.64  
1/2/2013 9:45:00 AM  -> 1133165.55  
...                  -> ...         
4/10/2015 3:46:00 PM -> 1284412.341 
4/10/2015 3:47:00 PM -> 900809.43   
4/10/2015 3:48:00 PM -> 542263.54   
4/10/2015 3:49:00 PM -> 393960.84   
4/10/2015 3:50:00 PM -> 1395440.96  
4/10/2015 3:51:00 PM -> 1927824.3   
4/10/2015 3:52:00 PM -> 1458494.1   
4/10/2015 3:53:00 PM -> 1092189.57  
4/10/2015 3:54:00 PM -> 1675165.38  
4/10/2015 3:55:00 PM -> 987443.275  
4/10/2015 3:56:00 PM -> 1519896.625 
4/10/2015 3:57:00 PM -> 1100833.68  
4/10/2015 3:58:00 PM -> 1216154.3   
4/10/2015 3:59:00 PM -> 1648792.64  
4/10/2015 4:00:00 PM -> 5523283.36
我想要一些类似于:

(csv_temp?Close * csv_temp?Volume).GetRowsWith(DateTime(2013,1,2))
然后将数据分成不同的时间段来计算平均值

这可能吗


谢谢

我不熟悉迪德尔,但我很好奇,发现了这个

基于此,我将尝试:

let dateTimeFilter = [ ... ] //todo add the dateTimes that are currently of interest
// in the tutorial it was like this [ for d in 2 .. 4 -> DateTime(2013, 1, d) ]

let filtered = csv_temp.Rows.[dateTimeFilter]

let result = (filtered?Close * filtered?Volume) |> Stats.mean

我没有访问您正在使用的CSV文件的权限,因此我没有尝试过此方法。但是你应该能够做一些类似于
(过滤?关闭*过滤?卷)|>Series.groupInto(fun k uuu->k.Date)(fun uuu.group->Stats.mean group)

这将计算每分钟的
关闭*量
,然后按
日期
-部分(即按天)对其进行分组,最后找到每天的平均值

let dateTimeFilter = [ ... ] //todo add the dateTimes that are currently of interest
// in the tutorial it was like this [ for d in 2 .. 4 -> DateTime(2013, 1, d) ]

let filtered = csv_temp.Rows.[dateTimeFilter]

let result = (filtered?Close * filtered?Volume) |> Stats.mean