The Visual Studio 2017 Quick Info tooltip for Frame.denseCols
says "it skips columns that contain missing value in any row." The following example seems to suggest otherwise:
let dateRange (first:System.DateTime) count frac =
seq {for i in 0..(count - 1) -> first.AddDays(float i + frac)}
let fifth = Series(dateRange (DateTime(2013,1,1)) 10 0.0, rand 10)
let sixth = Series(dateRange (DateTime(2013,1,1)) 5 0.0, [10.0; 20.0; 30.0; 40.0; 50.0])
let dfR10 = Frame(["fifth"; "sixth"], [fifth; sixth])
let sR1 =
dfR10
|> Frame.denseCols
sR1.Keys
// val it : seq<string> = seq ["fifth"; "sixth"]
The "sixth" column is empty:
sR1.["sixth"]
(* Deedle.MissingValueException: Value at the key sixth is missing
at Deedle.Series`2.Get(K key) in C:\code\deedle\src\Deedle\Series.fs:line 311
at <StartupCode$FSI_0167>.$FSI_0167.main@()
Stopped due to error *)
So the key for a column containing missing values exists but the corresponding series is empty.
On the other hand Frame.denseRows
seems to be working fine:
let sR2 =
dfR10
|> Frame.denseRows
sR2.Keys
// keys from 1/1/2013 to 1/5/2013
So the key for a row containing missing values does not show up.
Is there an asymmetry between these two commands and the Quick Info for Frame.denseCols
is incorrect or am I missing something?