Подсчет количества уникальных слов в кадре данных с помощью Python - PullRequest
3 голосов
/ 05 мая 2020

Я Python новичок ie. Я не нашел решения для следующей проблемы:

Я получил этот тип фрейма данных, который представляет последовательность точек касания:

    df = pd.DataFrame({'path' : ['a>b>c','b>b','c>c','b>d','a>c>c']})

    path
    a>b>c
    b>b
    c>c
    b>d
    a>c>c

Мне нужно подсчитать количество уникальных точек касания для каждой ряд и получим:

    path    count_unique_touchpoint
    a>b>c   3
    b>b     1
    c>c     1
    b>d     2
    a>c>c   2

Заранее большое спасибо.

1 Ответ

4 голосов
/ 05 мая 2020

Вы можете использовать Series.str.split, чтобы разделить строки вокруг разделителя >, а затем использовать Series.apply, чтобы применить пользовательскую функцию, которая отображает каждый элемент этой серии количеству различных элементов, которые он содержит. Используйте:

df["count_unique_touchpoint"] = df["path"].str.split(">").apply(lambda s: len(set(s)))
print(df)

Это напечатает:

    path  count_unique_touchpoint
0  a>b>c                        3
1    b>b                        1
2    c>c                        1
3    b>d                        2
4  a>c>c                        2
...