Считайте уникальным в серии Deedle - PullRequest
4 голосов
/ 16 мая 2019

Я хочу иметь обзор Series в моем фрейме данных, что-то вроде подсчета уникальных значений pandas.Я не знаю, есть ли встроенная функция для этого.

До сих пор я сделал функцию, чтобы просто получить количество различных функций.Мне удалось справиться с работой, мой вопрос касается только встроенной функции.

let unique (s:Deedle.Series<'a,'a>) = 
    s.Values
    |>Seq.distinct
    |>Seq.length

Я хочу получить такой результат, как:

[("value1",5);("value2",8)]

1 Ответ

4 голосов
/ 17 мая 2019

Вы можете использовать функцию groupInto - она ​​позволяет группировать значения ряда, поэтому вы можете сгруппировать данные, используя фактическое значение в качестве ключа, а затем объединить каждую группу в одно значение путем подсчета общего количества элементов.в группе:

let unique s = 
  s |> Series.groupInto (fun _ v -> v) (fun _ g -> Stats.count g)

Series.ofValues [ 1;2;1;2;3 ] |> unique
...