You need to yield the matched values from your inner sequence comprehension. It's not clear what the format of the keys and values should be but you can do something like:
return
[|
for row in csv.Split([|'\n'|], StringSplitOptions.RemoveEmptyEntries) do
match row.Split([|','|]) with
| [|d; p; v |]-> yield (d, p)
| _ -> yield! [||]
|] |> Map.ofArray