Search code examples
f#deedle

Map over values of one column


I want to map over the values of the Title column of my dataframe. The solution I came up with is the following:

df.Columns.[ [ "Title"; "Amount" ] ]
|> Frame.mapCols(fun k s -> 
    if k = "Title" 
    then s |> Series.mapValues (string >> someModif >> box) 
    else s.Observations |> Series)

Since s is of type ObjectSeries<_> I have to cast it to string, modify it then box it back.

Is there a recommended way to map over the values of a single column?


Solution

  • You can use GetColumn:

    df.GetColumn<string>("Title")
    |> Series.mapValues(someModif)
    

    Or in more F#-style:

    df
    |> Frame.getCol "Title"
    |> Series.mapValues(string >> someModif)