Посчитать кол-во всех стран из list

Пытаюсь понять как можно считать кол-во всех стран из базы данных.

import pandas as pd
file_url = "https://drive.google.com/file/d/1LTpeRRuLgts3MDOBzvuSI6idL0no24AW/view?usp=sharing"
file_path = 'https://drive.google.com/uc?export=download&id=' + file_url.split('/')[-2]
data = pd.read_csv(file_path,encoding = "ISO-8859-1")
data=data.drop(['IMDb Link', 'Awards Received', 'Awards Nominated For', 'Image', 'Poster','Production House','TMDb Trailer','Trailer Site'],axis=1)

Нашла в интернете такой алгоритм

Country=data['Country Availability'].values.tolist()

lst_no = ['.', ',', ':', '!', '"', "'", '[', ']', '-', '—', '(', ')', ' ' ]
lst = []
for i in range(0,len(Country)):
  for word in str(Country[i]).split():
      if not word in lst_no:
          _word = word 
          if word[-1] in lst_no:
              _word = _word[:-1]
          if word[0] in lst_no:
              _word = _word[1:] 
          lst.append(_word)

_dict = dict()
for word in lst:
    _dict[word] = _dict.get(word, 0) + 1

lst = []
for key, value in _dict.items():
    lst.append((value, key))
    lst.sort(reverse=True)

dic=dict(lst)
print(dic)

Но почему-то в этом случае он не работает. Получаю такой ответ.

     1:
'States,Hungary,Turkey,Canada,Argentina,Mexico,Malaysia,Brazil,Netherlands,Italy,Israel,Colombia',
     2: 'States,Greece,Slovakia,Thailand,Turkey,Malaysia,Brazil,Italy,Iceland,Israel,India,Mexico,Colombia',
     3: 'Kingdom,France,India,Russia,Greece,Slovakia,Singapore,Poland,Czech',
     4: 'States,Canada,Australia,Mexico,Argentina,Sweden,France,United',
     5: 'Republic,Lithuania,Israel,Iceland,Romania,South',
     6: 'Belgium,Brazil,United',
     7: 'States,Canada,Germany,Mexico,Argentina,Sweden,France,United',
     8: 'States,Canada,Mexico,Argentina,Sweden,United',
     9: 'States,Germany,Argentina,Mexico,Brazil,Spain,Portugal,India,Russia,Greece,South',
     10: 'Kingdom,France,Australia,Belgium,Canada,Netherlands,Sweden,Switzerland,United',
     11: 'Republic,Romania,Russia,Greece,Poland,South',

Помогите разобраться пожалуйста.


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

Автор решения: SergFSM

в 'Country Availability' страны разделены запятыми, а в вашем коде сплит по пробелу split()

вот так вы получите список стран и сколько раз каждая страна встречается, в отсортированном виде (сперва самые частые):

data['Country Availability'].str.split(',').explode().value_counts()

>>> out
'''
United Kingdom    6311
Czech Republic    6237
Japan             6115
Hungary           5989
Canada            5930
Thailand          5876
Singapore         5876
India             5826
Slovakia          5820
Australia         5820
Romania           5759
United States     5718
South Africa      5553
Lithuania         5541
Germany           5539
Russia            5491
Switzerland       5472
Belgium           5437
Malaysia          5394
Iceland           5364
Greece            5324
Israel            5198
France            5194
Hong Kong         5188
Mexico            5148
Italy             5141
Argentina         5138
Poland            5136
Brazil            5057
Netherlands       5021
Spain             5010
Colombia          4867
South Korea       4845
Turkey            4814
Sweden            4751
Portugal          4685
Name: Country Availability, dtype: int64
→ Ссылка