Deedleシリーズ<日時、シリーズ<日時、ObjectSeries
12/28/2014 9:00:00 PM - > 62.27 62.42 62.14 62.39 1620
12/28/2014 10:00:00 PM - > 62.4 62.41 62.16 62.21 1275
12/28/2014 11:00:00 PM - > 62.21 62.32 61.96 62.19 2791
12/29/2014 12:00:00 - > 62.17 62.25 62.08 62.23 1233
12:29/2014 1:00:00 AM - > 62.23 62.41 62.21 62.31 1186
12/29/2014 2:00: 00 AM - > 62.32 62.32 62.07 62.21 1446
2014年12月29日午前3時00分○○秒AM - > 62.22 62.35 62.17 62.28 1335
。返し
ohlc
|> Frame.rows
|> Series.resampleEquiv (fun d -> d.Date)
:
は私が始める Series<DateTime,Series<DateTime,ObjectSeries<string>>>.
は私が(キー)、オープン、高、低、閉じるとボリューム列の日付を含む新しいデータフレームを作成します。オープンはシリーズの第1列の第1オープンです。 HighはシリーズのMax Highです。 Lowは、シリーズのMin Lowです。クローズは最後のクローズです。ボリュームだからシリーズ
に何かボリュームの合計です:代わりに行を使用してフレームレベルでこれをやろうとしているの
ohlc
|> Frame.rows
|> Series.resampleEquiv (fun d -> d.Date)
|> ??
|> ??
、私が列を使用して、フレームでこれを行うしようとしたほうが良いでしょうか?ここで
UPDATE は、完成したコードです:
ohlc
|> Frame.rows
|> Series.resampleEquiv (fun d -> d.Date)
|> Series.mapValues (fun s ->
let temp = Frame.ofRows s
series ["Open" => Series.firstValue temp?Open
"High" => defaultArg (Stats.max temp?High) nan
"Low" => defaultArg (Stats.min temp?Low) nan
"Close" => Series.lastValue temp?Close
"Volume" => defaultArg (Some(Stats.sum temp?Volume)) nan ])
|> Frame.ofRows
私が使用することができませんでした:
"Volume" => defaultArg (Stats.sum temp?Volume) nan ])
これは私にエラーメッセージを出した。この式は、float型のオプションを持っていることが予想されましたここにはfloat型があります。 Some()関数をラップする必要がありました。 Stats.sumがこれを必要としているのにStat.maxとStats.minが必要な理由がわからない。