Частота встречаемости значения в колонке со списками / Python

Есть подобный датафрейм с множеством строк:

d = pd.DataFrame({'a':['id1', 'id2', 'id3'],
              'b':["[None, 'https://example.com/link7', 'https://example.com/link7', 'https://example.com/link3']",
                   "[None, 'https://example.com/link', 'https://example.com/link3']",
                   "[None, 'https://example.com/link7', 'https://example.com/link' , 'https://example.com/']"]})

   

Нужно по колонке b определить частоту встречаемости каждого из URL-ов, то есть в данном случае - на выходе получить:

Помогите разобраться, пожалуйста, каким способом это можно сделать


Ответы (1 шт):

Автор решения: strawdog
import pandas as pd
import ast

df = pd.DataFrame({'a':['id1', 'id2', 'id3'],
              'b':["[None, 'https://example.com/link7', 'https://example.com/link7', 'https://example.com/link3']",
                   "[None, 'https://example.com/link', 'https://example.com/link3']",
                   "[None, 'https://example.com/link7', 'https://example.com/link' , 'https://example.com/']"]})
res = df["b"].apply(lambda x:ast.literal_eval(x)).explode().value_counts(dropna=False)
print(res)
b
None                         3
https://example.com/link7    3
https://example.com/link3    2
https://example.com/link     2
https://example.com/         1
Name: count, dtype: int64
→ Ссылка